我想根据下面的字段'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
任何人都可以提出解决这个问题的最佳方法吗? 提前谢谢。
答案 0 :(得分:5)
如果你使用java,你可以编写自己的Comparator
并将ArrayList
和比较器传递给Collections.sort()
method。
来自Javadoc:
比较函数,它对某些对象集合施加总排序。比较器可以传递给排序方法(例如
Collections.sort
或Arrays.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());