我有一个arraylist的arraylist,每个内部arraylist包含2个值,第一个是整数,第二个是字符串,所以基本上它看起来像:{5,一些文本},{12,更多文本},{3,甚至更多文本}等,我想做的是接受它并对其进行排序,使其按从最大整数到最小整数的降序排列,所以前面的例子看起来像:{12,更多文本},{5,一些text}, {3, even more text},任何帮助都会有很大帮助,在此先感谢
问问题
2175 次
2 回答
6
您的数据结构实际上听起来像是一个“地图”。也许你应该研究一下数据结构,特别是集合接口和类......
如果您仍然认为您拥有的是“列表”,那么您应该使用正确的 Comparator 或 Comparable 进行 Collections.sort 操作
如果 List 是正确的,这是您的数据结构的解决方案;
import java.util.ArrayList;
import java.util.Collections;
public class InnerObject implements Comparable<InnerObject> {
Integer index;
String name;
public InnerObject(Integer index, String name) {
this.index = index;
this.name = name;
}
@Override
public int compareTo(InnerObject other) {
return index.compareTo(other.index);
}
@Override
public String toString() {
return "{" + index + "," + name + "}";
}
public static void main(String[] args) {
ArrayList<InnerObject> list = new ArrayList<InnerObject>();
list.add(new InnerObject(666, "devil"));
list.add(new InnerObject(1, "one"));
list.add(new InnerObject(10, "ten"));
System.out.println("list before order: " + list);
Collections.sort(list);
System.out.println("list after order: " + list);
}
}
于 2012-05-22T13:37:16.013 回答
0
如果您的内部列表可以包含一个具有 2 个属性的对象会更好。该对象可用于排序。
于 2012-05-22T13:35:43.590 回答