stream的分组如何使用
时间: 2023-08-17 19:39:06 浏览: 43
在Java 8中,我们可以使用Stream API来对集合或数组中的元素进行操作。Stream API提供了一些方法来实现分组操作,其中最常用的是groupingBy()方法。它可以根据指定的条件对集合元素进行分组,并返回一个Map,其中每个键都是分组的条件,每个值都是符合该条件的元素列表。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
// 创建一个字符串列表
List<String> items = Arrays.asList("apple", "banana", "orange", "apple",
"orange", "banana", "papaya");
// 使用groupingBy()方法分组
Map<String, List<String>> result = items.stream().collect(Collectors.groupingBy(String::toString));
// 打印结果
System.out.println(result);
}
}
```
运行结果为:
```
{orange=[orange, orange], banana=[banana, banana], papaya=[papaya], apple=[apple, apple]}
```
在上面的示例中,我们首先创建了一个字符串列表,然后使用groupingBy()方法对它进行分组。在这个例子中,我们使用String::toString作为分组条件,即将每个字符串作为一个键。groupingBy()方法返回一个Map,其中每个键都是一个字符串,对应着一个值列表,该列表包含所有等于这个字符串的元素。最后,我们打印出分组结果。
除了groupingBy()方法,Stream API还提供了其他方法来实现分组操作,例如partitioningBy()方法和groupingByConcurrent()方法。你可以根据自己的需求选择合适的方法来实现分组操作。