Java中如何求两个ArrayList的交集呢?
求交集:
获取一组元素,他们同时存在两个Arraylist集合中,那么如何实现这一需求呢?下文是笔者收集的实现方法,如下所示:
实现思路:
使用ArrayList中retainAll()方法即可删除一个集合中不在另一个集合中的元素,达到变相实现ArrayList求交集的方法,如下所示:
---------------------------------------
retainAll方法语法:
arraylist.retainAll(Collection c);
---------说明-------------
arraylist:待求交集的ArrayList对象
Collection c:待剔除元素的集合
返回值说明:
如果操作成功,则返回true
反之返回false
retainAll方法注意事项:
1.当arraylist中元素和collection中元素出现类型不兼容,则抛出ClassCastException异常
2.当arraylist包含null元素,此时如果collection不允许出现null元素,则抛出NullPointerException
3.retainAll方法会修改arraylist中的值
例:ArrayList之retainAll()方法的示例分享
package com.java265;
import java.util.ArrayList;
public class testMain {
/*
* java265.com ArrayList中lastIndexOf方法的示例分享
*/
public static void main(String[] args) {
ArrayList<Integer> objectName = new ArrayList<Integer>();
objectName.add(11);
objectName.add(88);
objectName.add(99);
objectName.add(100);
ArrayList<Integer> objectName2 = new ArrayList<Integer>();
objectName2.add(77);
objectName2.add(88);
/*变相求交集,会修改原ArrayList*/
boolean t = objectName.retainAll(objectName2);
System.out.println("retainAll方法返回值:" + t);
System.out.println("objectName==>" + objectName);
System.out.println("objectName2==>" + objectName2);
}
}
------输出--------
retainAll方法返回值:true
objectName==>[88]
objectName2==>[77, 88]
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


