我的设置看起来像这样,
final public static Set<String> env = new HashSet<String>(
Arrays.asList("DEV", "QA", "PREPROD", "PROD"));
我的arrayList将从DB中动态填充,其中包含4个或更少的数据(例如:DEV,QA)
如何找到arraylist中缺少的元素并打印出来?
答案 0 :(得分:3)
鉴于两个集合a
和b
,这里列出了a
中不属于b
的{{1}}内容。
a.stream()
.filter(x -> !b.contains(x))
.forEach(System.out::println);
没有溪流,你可以这样做:
for (String x : a) {
if (!b.contains(x)) {
System.out.println(x);
}
}
答案 1 :(得分:3)
使用removeAll method复制Set并删除List中的所有元素。你将留下一个包含缺失的Set:
List<String> list = ...;
Set<String> set = ...;
Set<String> copy = new HashSet<>(set);
copy.removeAll(list);
System.out.println(copy);
答案 2 :(得分:-1)
您应该使用包含代码中所有可能值的枚举。
然后你可以这样做:
Arrays.asList(YourEnum.values()).removeAll(<elements_got_from_database>));
答案 3 :(得分:-2)
for (String element : array)
if (!otherarray.contains(element))
print(element);