繁体   English   中英

如何从arrayList中删除唯一元素

[英]how to remove unique elements from arrayList

我有两个列表,其中一个列表的值是1,2,3

另一个清单2,3

我想删除两个列表中不匹配的值。

2和3在两个列表中都匹配,然后在两个列表中均未匹配1,因此我想删除该值。

List original = [1,2,3];

List dummy = [2,3];

如果可以使用集合,那么您只需获取集合之间的交集( info ):

Set<String> s1;
Set<String> s2;
s1.retainAll(s2); // s1 now contains only elements in both sets

当然,对于集合,您不能重复,并且会失去订购。

您无需使用Set即可满足您的要求。
使用任何List实现实现的Collection中定义的retainAll()

List<Integer> original = new ArrayList<>(Arrays.asList(1,2,3));
List<Integer> dummy = Arrays.asList(2,3);

original.retainAll(dummy);
System.out.println(original);

输出:

[2,3]

如果您使用的是Java 8+,则可以使用:

original.removeIf(a -> !dummy.contains(a));

这是Java 10的示例

var original = new ArrayList<>(List.of(1, 2, 3, 4));
var dummy = new ArrayList<>(List.of(2, 4, 3));

original.removeIf(a -> !dummy.contains(a));

System.out.println(original);
->[2, 3, 4]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM