groupingBy
内部partitioningBy
和Java 8
的内部结构是什么?
仅供参考:我知道Collectors.groupingBy
和Collectors.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));