gpt4 book ai didi

java - 获取所有给定列表中出现的所有字符串

转载 作者:行者123 更新时间:2023-11-29 06:50:56 25 4
gpt4 key购买 nike

我有一个列表列表:ArrayList<ArrayList<String>> names
我想获取每个列表中出现的所有字符串的列表。有没有更简单、更优雅的方法来代替使用 4 个循环:

ArrayList<ArrayList<String>> names = new ArrayList<>();
for (ArrayList<String> n1 : names) {
for (String name1 : n1) {
for (ArrayList<String> n2 : names) {
for (String name2 : n2) {
}
}
}
}

编辑:

我想要一个出现在所有列表中的字符串列表。因此,如果一个字符串仅在一个或两个列表中,则它不应该在我的结果列表中。

是的,代码必须与 Java 7 兼容,所以遗憾的是没有流。

最佳答案

您可以获得 ArrayList.retainAll 的帮助在 Java 7 上。例如,在 ArrayList<ArrayList<String>> names 中列出此列表:

list1 = "e1", "e2", "e3", "e4", "e5"
list2 = "e6", "e7", "e3", "e4", "e5"
list3 = "e8", "e9", "e3", "e4", "e5"

你可以使用retainAll获取每个列表(交集)中出现的所有字符串:

List<String> commonElements = new ArrayList<>(list1);
for(List<String> tmpList: names){
commonElements.retainAll(tmpList);
}

输出:

[e3, e4, e5]

关于java - 获取所有给定列表中出现的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48384852/

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