我有以下代码(简单明了):
ArrayList<ArrayList<Object>> dataArrays = new ArrayList<ArrayList<Object>>();
ArrayList<Object> dataList = new ArrayList<Object>();
dataList.add(4,44,444);
dataList.add(5,55,555);
dataList.add(6,66,666);
dataArrays.add(dataList);
dataList=null;
dataList.add(1,11,111);
dataList.add(2,22,222);
dataList.add(3,33,333);
dataArrays.add(dataList);
dataList=null;
.
.
.
我想通过数组中第一个值的值对dataArrays进行排序。 我希望dataArrays中的第一个数组为1,11,111,然后是2,22,222等。 这样做的最佳做法是什么?如果使用Comparable - 请提供代码(从未使用过)。
答案 0 :(得分:0)
而不是ArrayList<ArrayList<Object>>
我使用ArrayList<ArrayList<Integer>>
来简化代码。
ArrayList<ArrayList<Integer>> dataArrays = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> dataList = new ArrayList<Integer>();
dataList.add(4);
dataList.add(44);
dataList.add(444);
dataArrays.add(dataList);
dataList = new ArrayList<Integer>();
dataList.add(1);
dataList.add(11);
dataList.add(111);
dataArrays.add(dataList);
Collections.sort(dataArrays, new Comparator<ArrayList<Integer>>() {
public int compare(ArrayList<Integer> arg0, ArrayList<Integer> arg1) {
return arg0.get(0).compareTo(arg1.get(0));
}
});
System.out.println(dataArrays);