Collectors.groupingBy和Collectors.partitioningBy如何在jdk8内部工作?

时间:2019-06-25 04:53:35

标签: java java-8 grouping partitioning

groupingBy内部partitioningByJava 8的内部结构是什么?

仅供参考:我知道Collectors.groupingByCollectors.partitioningBy的用途。

让我们考虑Employee对象的流:

+----------+------------+-----------------+
| Name     | City       | Number of Sales |
+----------+------------+-----------------+
| Alice    | London     | 200             |
| Bob      | London     | 150             |
| Charles  | New York   | 160             |
| Dorothy  | Hong Kong  | 190             |
+----------+------------+-----------------+

分组:考虑我们希望将属于同一employee的{​​{1}}分组。

city

分区:分区是一种特殊的分组方式,其中生成的地图最多包含两个不同的组-一组为true,一组为false。

Map<String, List<Employee>> employeesbycity =
  employees.stream().collect( Collectors.groupingBy(Employee::getCity));

Output: {New York=[Charles], Hong Kong=[Dorothy], London=[Alice, Bob]}

输出:

Map<Boolean, List<Employee>> partitioned = 
employees.stream().collect( Collectors.partitioningBy(e -> e.getNumSales() > 150));

0 个答案:

没有答案