List.stream分组
时间: 2024-06-14 09:08:44 浏览: 15
List.stream()是Java 8引入的一个新特性,它允许我们对集合进行流式操作。而List.stream().collect(Collectors.groupingBy())则是一种分组操作,可以将集合中的元素按照指定的条件进行分组。
具体来说,List.stream().collect(Collectors.groupingBy())方法接受一个Function作为参数,该函数用于指定分组的条件。它会将集合中的元素按照该条件进行分组,并返回一个Map对象,其中键是分组的条件,值是对应的元素列表。
下面是一个示例代码,演示了如何使用List.stream().collect(Collectors.groupingBy())进行分组:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "apple", "grape", "banana");
Map<String, List<String>> groupedFruits = fruits.stream()
.collect(Collectors.groupingBy(fruit -> fruit));
System.out.println(groupedFruits); }
}
```
输出结果为:
```
{orange=[orange], banana=[banana, banana], apple=[apple, apple], grape=[grape]}
```
在上述示例中,我们将水果列表按照水果名称进行了分组。可以看到,相同名称的水果被放在了同一个列表中。