本文主要介绍java交集方法retainAll的实现,具有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
java 取交集方法retainAll
有两套,新课程和旧课程。确定这两个集合是否包含相同的对象或元素,
可以使用retainAll方法:
旧课程.零售(新课程)
如果存在相同的元素,则只有相同的元素会保留在旧课程中。
如果相同的元素不存在,旧的课程将变成空的。
如果有多个集合,比如oldCourses1,oldCourses2,oldCourses3等。分别与新课程比较,新课程应该放在后面,像这样:
旧课程1 . retail all(新课程);
旧课程2 . retail all(新课程);
old courses 3 . retail all(新课程);
公共类测试{
公共静态void main(String[] args) {
ListString list 1=new ArrayList string();
ListString list 2=new ArrayList string();
ListString list 3=new ArrayList string();
for(int I=0;i 20i ) {
list 1 . add(I ' ');
if(i%2==0) {
list 2 . add(I ' ');
}
list 3 . add(I ' @ ');
}
//list1和list2有相同的元素,list1集合只保留list2中存在的元素。
list 1 . retail all(list 2);
if(list1.isEmpty()) {
System.out.println('不包含');
}否则{
system . out . println(' contains ');
}
system . out . println(list 1);
//list1和list3没有相同的元素,list1集合变为空。
list 1 . retail all(list 3);
if(list1.isEmpty()) {
System.out.println('不包含');
}否则{
system . out . println(' contains ');
}
system . out . println(list 1);
}
}
运行结果如下:
retainall的问题
用java调用retainall时出现问题。
代码如下:
公共静态ArrayListInteger RES _ and(ArrayListInteger S1,ArrayListInteger s2)
{
s1 .零售(S2);
//system . out . println(' S1=');
//system . out . println(S1);
返回S1;
我定义了一个函数,找到s1和s2的公共部分,保存在s1中。
不过这样写好像会导致s1中重复的元素出现两次。
解决办法:
返回前添加以下句子。
S1=new ArrayListInteger(new HashSetInteger(S1));
去做吧。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。