,,java 取交集方法retainAll的实现

,,java 取交集方法retainAll的实现

本文主要介绍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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: