groupingBy sort
时间: 2023-08-20 11:08:37 浏览: 281
您可以使用Java 8中的`Collectors.groupingBy`方法和`Collectors.collectingAndThen`方法来对元素进行分组并排序。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingAndSortingExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "kiwi", "grape");
// 按照首字母分组并按字母顺序排序
Map<Character, List<String>> groupedAndSorted = fruits.stream()
.collect(Collectors.groupingBy(s -> s.charAt(0),
Collectors.collectingAndThen(Collectors.toList(),
list -> list.stream()
.sorted(Comparator.naturalOrder())
.collect(Collectors.toList()))));
// 打印结果
groupedAndSorted.forEach((key, value) -> System.out.println(key + ": " + value));
}
}
```
输出结果:
```
a: [apple]
b: [banana]
g: [grape]
k: [kiwi]
o: [orange]
```
在这个示例中,我们将水果列表按照首字母进行分组,并对每个分组中的元素按字母顺序进行排序。
阅读全文