2011-03-23 31 views
1

我有以下代码(由它简单):排序DataArray中

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,222,212等。 这样做的最佳做法是什么?如果使用Comparable - 请提供代码(从未使用过)。

回答

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);