//计算 总金额BigDecimal totalMoney =appleList.stream().map(Apple::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); System.err.println("totalMoney:"+totalMoney);//totalMoney:17.48 Integer: //计算 数量intsum =appleList.stream().mapToInt(Apple::getNum).sum(); System.err.println("sum:"...
System.out.println("---List<Student>转Map<String, Student>重复key只保留前者---");//重复key处理 (s1, s2) -> s1)Map<Integer, Student> classStudentMap = students.stream().collect(Collectors.toMap(Student::getClassNo, s -> s, (s1, s2) ->s1)); classStudentMap.forEach((classNo, stu...
Collectors.counting():统计分组后每个分组的数量。 forEach方法:遍历Map输出每个分组的统计结果。 完整示例 下面我们来完整演示一下List转Map统计分组的过程: importjava.util.Arrays;importjava.util.List;importjava.util.Map;importjava.util.stream.Collectors;publicclassGroupingByDemo{publicstaticvoidmain(String[]ar...
Map<Integer,User> userMap4 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(),(key1,key2)->key2)); 5、拼接key->Map Map<String, Parts> partsMap = synList.stream().collect(Collectors.toMap(k -> k.getOe()+k.getOeId()+k.getPartGroupId()+k.getStdPartId...
packagejava8;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjava.util.function.Consumer;importjava.util.stream.Collectors;classEmployee{privateStringcity;privateStringname;privateintscore;publicEmployee(Stringname,Stringcity,intscore){this.city=city;this....
统计计数: List<Order>orders=Lists.newArrayList();// 统计所有订单的总金额// 求和Doublesum=orders.stream().filter(item->item.getAllAmt()!=null).mapToDouble(Order::getAllAmt).sum();// 最大总金额OptionalDoublemax=orders.stream().filter(item->item.getAllAmt()!=null).mapToDouble(Order::ge...
注意:用Collectors的toMap方法转换List,一般会遇到两个问题。一个是转换map,key重复问题;另一个是空指针异常,即转为map的value是null。问题解决!!!一、第一种问题报的错误如下:Duplicate key 原因是声明List集合时,有的值重复,如图: 解决方法:(分三种,具体哪种看业务需求) 1.重复时用后面的value 覆盖前面的valu...
Map<Integer, Student> studentMap = studentList.stream() .collect(Collectors.toMap(Student::getId, student -> student)); studentMap.forEach((key, value) -> System.out.println(key + " : " + value.getName())); } } 二、Java8中List转Map的第二种方法。 2.1 处理键冲突。 有时候,我们的...
1、重复key的情况。 在list转为map时,作为key的值有可能重复,这时候流的处理会抛出个异常:Java.lang.IllegalStateException:Duplicate key。这时候就要在toMap方法中指定当key冲突时key的选择。(这里是选择第二个key覆盖第一个key) public Map<String, Account> getNameAccountMap(List<Account> accounts) { return...