我有一個類說Level(它只是一個理解的虛擬類)。 我想根據levelId排序TreeMap<Level,Set<String>>
。 請從下面的代碼如何使用流從列表中排序TreeMap
import java.util.*;
import java.util.stream.Collectors;
public class Level {
int levelId;
public Level(int levelId) {
this.levelId = levelId;
}
public static Level getLevel(String name){
return new Level(name.length());
}
public static void main(String[]args){
Set<String> names=new HashSet<>();
names.add("Mahesh");
names.add("Ram");
names.add("Rita");
Map<Level, Set<String>> map = names.stream().collect(
Collectors.groupingBy(name->Level.getLevel(name),
Collectors.mapping(name->name,Collectors.toSet())));
}
}
我也試圖與Collectors.collectingAndThen()
。
任何幫助表示讚賞。
在此先感謝。
https://docs.oracle.com/javase/8/docs/api/java/util /stream/Collectors.html#groupingBy-java.util.function.Function-java.util.function.Supplier-java.util.stream.Collector- –
使用for循環而不是流 –
'Collectors.groupingBy(Level :: getLevel,TreeMap :: new,Collectors.toSet())' – 4castle