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]
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。