转自:
求交集:
获取一组元素,他们同时存在两个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]