2011-03-23 58 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);