Collectors.groupingBy()自定义
时间: 2023-10-17 13:37:30 浏览: 71
你可以使用Collectors.groupingBy()方法进行分组,同时还可以自定义分组逻辑。在该方法中,你可以提供一个Function作为参数,用于提取分组的依据。以下是一个示例代码,展示如何使用Collectors.groupingBy()方法进行自定义分组:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingByDemo {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
// 根据水果名称的首字母进行分组
Map<Character, List<String>> groupedFruits = fruits.stream()
.collect(Collectors.groupingBy(fruit -> fruit.charAt(0)));
System.out.println(groupedFruits);
}
}
```
这段代码将水果列表按照首字母进行了分组。输出结果如下:
```
{a=[apple], b=[banana], c=[cherry], d=[date], e=[elderberry]}
```
你可以根据自己的需求来修改提取分组依据的逻辑,例如根据水果名称的长度、首字母的ASCII码值范围等来进行分组。希望对你有所帮助!如果有任何问题,请随时提问。
阅读全文