2012-04-27 109 views
0

我想根據下面的字段'代碼'對Arraylist進行排序,我想添加一個額外的記錄到當前數組列表中,並以相同代碼的總價格爲值。排序和分類arraylist

No  Desc Width  Height  Code  Price 

1  WW  88.0  88.0  1021021  340.0  
4  TT  55.0  55.0  1021021  340.0  
5  PP  66.0  66.0  1021021  340.0 
2  gg  66.0  66.0  1021022  320.0  
3  LL  658.0  652.0  1021022  320.0 

我的預期輸出會是這樣

1  WW  88.0  88.0  1021021  340.0  
4  TT  55.0  55.0  1021021  340.0  
5  PP  66.0  66.0  1021021  340.0 
                1020 
2  gg  66.0  66.0  1021022  320.0  
3  LL  658.0  652.0  1021022  320.0 
                640 

任何一個誰可以提出解決這個問題的最好方法? 在此先感謝。

+1

你有一類數據來表示你的「行」? – 2012-04-27 06:41:19

回答

5

如果您要使用java,您可以編寫自己的Comparator,並將ArrayList和比較器傳遞給Collections.sort() method

從的Javadoc:

比較函數強行對某些對象collection進行整體排序。可以將比較器傳遞給排序方法(如Collections.sortArrays.sort),以便精確控制排序順序。比較器也可以用來控制某些數據結構(例如排序集合或排序映射)的順序,或者爲沒有自然排序的對象集合提供排序。

0

我會給你一個Comparator的例子。

import java.util.Comparator; 

public class CodeComparator implements Comparator<Item> { 

    @Override 
    public int compare(Item arg0, Item arg1) { 
     return arg0.getCode().compareTo(arg1.getCode()); 
    } 

} 

然後排序的數組:

Collections.sort(itemList, new CodeComparator());