对arraylist进行排序和分类

时间:2012-04-27 06:34:51

标签: java

我想根据下面的字段'code'对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

任何人都可以提出解决这个问题的最佳方法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:5)

如果你使用java,你可以编写自己的Comparator并将ArrayList和比较器传递给Collections.sort() method

来自Javadoc:

  

比较函数,它对某些对象集合施加总排序。比较器可以传递给排序方法(例如Collections.sortArrays.sort),以便精确控制排序顺序。比较器还可用于控制某些数据结构的顺序(例如有序集或有序映射),或者为没有自然顺序的对象集合提供排序。

答案 1 :(得分: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());