gpt4 book ai didi

java - 按字母顺序对 map 进行排序

转载 作者:行者123 更新时间:2023-12-02 02:25:56 40 4
gpt4 key购买 nike

Removing brackets from list of anagrams

您好,我被要求创建新问题,而不是在同一线程中再次提问。

public static void main(String[] args) throws IOException {
getAnagrams(new InputStreamReader(new URL("http://www.puzzlers.org/pub/wordlists/unixdict.txt").openStream(),
StandardCharsets.UTF_8)).forEach(items -> {
for (String item : items) {
System.out.print(item + " ");
}
System.out.println();
});
}
private static String canonicalize(String string) {

return Stream.of(string.split("")).sorted().collect(Collectors.joining());
}

public static List<Set<String>> getAnagrams(Reader rr) {
Map<String, Set<String>> mapa = (Map<String, Set<String>>) new BufferedReader(rr).lines()
.flatMap(Pattern.compile("\\W+")::splitAsStream)
.collect(Collectors.groupingBy(Main::canonicalize, Collectors.toSet()));
return mapa.values().stream().filter(lista -> lista.size() > 4).collect(Collectors.toList());
}

}

我如何对输出进行排序,如“evil levi live veil vile”?因为现在我有“面纱邪恶邪恶利维活着”

更新最后一件事是按字母顺序对输出进行排序

现在 =“evil levi live veil vile, abelable bale bela elba”

Needed =“abelable bale bela elba,邪恶的levi live veil vile”

最佳答案

这是我能想到的最简单的方法

return mapa.values().stream()
.filter(lista -> lista.size() > 4)
.map(set -> new TreeSet<>(set))
.collect(Collectors.toList());

TreeSet 保持其元素排序。

关于java - 按字母顺序对 map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756207/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com