Java stream 分组
时间: 2023-08-17 10:11:13 浏览: 113
java1.8 中 stream 的 groupingBy 最大值、最小值分组
Java 8引入的Stream API提供了一种方便的方式来对集合进行分组操作。在Stream中,可以使用`Collectors.groupingBy()`方法进行分组。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "apple", "banana");
// 按照水果的首字母进行分组
Map<Character, List<String>> groupedByFirstChar = fruits.stream()
.collect(Collectors.groupingBy(fruit -> fruit.charAt(0)));
System.out.println(groupedByFirstChar);
}
}
```
上述代码将会输出以下结果:
```
{a=[apple, apple], b=[banana, banana], o=[orange]}
```
在这个例子中,我们使用`Collectors.groupingBy()`方法按照水果的首字母进行了分组。最终的结果是一个`Map`,其中键是首字母,值是按照首字母进行分组的水果列表。
除了按照单个属性进行分组外,我们还可以使用多级分组,或者在分组时进行其他操作,比如计数、求和等。Stream API提供了丰富的方法来支持这些操作。
阅读全文