2012-04-27 28 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());