[英]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.