编号 数量1234 1
1991 1
1234 1
1991 1
1234 1
1991 1
1234 3
1991 3现在在往txt文档写入数据,现在上面的那个集合对象的值是有重复的,现在怎么才能实现下面的结果,把1234的数量设为3,1991的数量设为3?
1991 1
1234 1
1991 1
1234 1
1991 1
1234 3
1991 3现在在往txt文档写入数据,现在上面的那个集合对象的值是有重复的,现在怎么才能实现下面的结果,把1234的数量设为3,1991的数量设为3?
解决方案 »
- 关于java生成class文件
- Iterator接口和Iterable接口的区别
- 求一正则表达式?
- 在sybase中如下语句select * into tableA from tableB能够生成tableA表,其结构如同tableB,在oracle中能否实现类似功能,先谢了
- 大家觉得MYSQL的哪个版本好用.
- 请教几个关于日期操作的问题
- 请教高手:带有static函数的类这样写有什么不同吗?
- 乐趣中的烦恼
- jbuilder6如何连接数据库?
- 我写了一个每日自动增量备份文件的小程序。大家给点意见。
- java程序,所有整数型数值全部转换成int型,这么写对吗
- 如何能得到JTable控件中的JCheckBox控件.
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;public class Demo32 { public static void main(String[] args) {
// TEST DATA
List<PNode> list = new ArrayList<PNode>();
list.add(new PNode("1234", 1));
list.add(new PNode("1234", 1));
list.add(new PNode("1234", 1));
list.add(new PNode("1991", 1));
list.add(new PNode("1234", 2));
list.add(new PNode("1991", 10));
list.add(new PNode("1991", 10));
list.add(new PNode("1234", 3));
list.add(new PNode("a", 2));
list.add(new PNode("b", 12));
list.add(new PNode("a", 1)); TreeSet<PNode> tsNode = list.parallelStream().collect(Collectors.toCollection(() -> new TreeSet<PNode>((x, y) -> {
if (x == y) return 0;
int _t = x.getNo().compareTo(y.getNo());
if (_t == 0) {
int t = x.getTotal() + y.getTotal();
x.setTotal(t);
y.setTotal(t);
}
return _t;
}))); tsNode.forEach(System.out::println);
}}class PNode {
private String no;
private int total; public PNode() { }; public PNode(String no, int total) {
this.no = no;
this.total = total;
} public String getNo() {
if (no == null) {
no = "";
}
return no;
} public void setTotal(int total) {
this.total = total;
} public int getTotal() {
return total;
} @Override
public String toString() {
return String.format("{\"no\": \"%s\", \"total\": %d}", getNo(), total);
}
}