【发布时间】:2018-02-23 11:34:49
【问题描述】:
我有一个自动生成的简单类,用于存储来自Retrofit 的响应。无论如何,在最后一步中,我想使用行内容,按位置从最高到最低对每个元素进行排序,排序后将其转换为 String[] 仅名称。我怎样才能以最有效的方式做到这一点?
public class RowModel implements Comparable<RowModel>{
private String name;
private double position;
public double getPosition() {
return position;
}
public void setPosition(float position) {
this.position = position;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public RowModel(String name, double position) {
this.name = name;
this.position = position;
}
}
我在网上搜索后发现这种方法可以执行排序,但我不确定结果是否正确。当然,我仍然不知道如何在最后一步将排序后的名称转换为String[]:
@Override
public int compareTo(RowModel rowModel) {
double comparePosition = ((RowModel) rowModel).getPosition();
return (int) (this.position- comparePosition);
}
【问题讨论】:
-
您可以使用
Collections.sort( List<RowModel>... )进行排序,并且有不止一种方法可以获取String[]的名称,其中之一是您可以创建一个字符串数组并遍历列表并填充数组it.next().getName()
标签: java arrays sorting arraylist