先看个简单的例子
public class Java8Example1 {
public static void main(String[] args) {
//3 apple, 2 banana, others 1
List<String> items =
Arrays.asList("apple", "apple", "banana",
"apple", "orange", "banana", "papaya");
Map<String, Long> result =
items.stream().collect(
Collectors.groupingBy(
Function.identity(),
Collectors.counting()
)
);
System.out.println(result);
}
输出
{
番木瓜= 1,橙= 1,香蕉= 2,苹果= 3
}
看一下实际项目中使用:
//根据明细项目分类
Map<String, List<OrTestReport_detailDTO>> map =
list.stream().collect(
Collectors.groupingBy(
OrTestReport_detailDTO::getTestDetailItemTypeName
)
);
输出就是一个list,最后有另一个list装着另一个实体类.
参考: