gpt4 book ai didi

java - 如何将 Set 转换为 ArrayList

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:26:37 25 4
gpt4 key购买 nike

我将如何添加 Set<<Set<String>> 的所有元素? var 到 ArrayList<<ArrayList<String>> ?当然,我知道只添加它们的幼稚方法。

 private static ArrayList<ArrayList<String>> groupAnagrams(ArrayList<String> words){
ArrayList<ArrayList<String>> groupedAnagrams = new ArrayList<>();
AbstractMap<String, String> sortedWords = new HashMap<>();
Set<Set<String>> sameAnagramsSet = new HashSet<>();
for(String word : words){
char[] wordToSort = word.toCharArray();
Arrays.sort(wordToSort);
sortedWords.put(word, new String(wordToSort));
}
for(Map.Entry<String, String> entry: sortedWords.entrySet() ){
Set<String> sameAnagrams = new HashSet<>();
sameAnagrams.add(entry.getKey());
for(Map.Entry<String, String> toCompare : sortedWords.entrySet()){
if(entry.getValue().equals(toCompare.getValue())){
sameAnagrams.add(toCompare.getKey());
}
}
if(sameAnagrams.size()>0){
sameAnagramsSet.add(sameAnagrams);
}
}

//-->this line does not work! return new ArrayList<ArrayList<String>>(sameAnagramsSet);

}

最佳答案

使用 Java 8,您可以:

return sameAnagramsSet.stream()
.map(ArrayList::new)
.collect(toList());

虽然它返回一个 List<ArrayList<String>> .

它的作用:

  • .stream()返回 Stream<Set<String>>
  • .map(ArrayList::new)相当于.map(set -> new ArrayList(set))基本上用数组列表替换每个集合
  • collect(toList())将所有新创建的列表放在一个列表中

关于java - 如何将 Set<Set> 转换为 ArrayList<ArrayList>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23187294/

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