java求集合交集和并集
程序员文章站
2022-05-07 10:29:45
...
在问答频道遇到求助集合求交集或者并集的问题,自己翻了下api,发现Collection接口两个很有意思的方法:removeAll(Collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。retainAll(Collection<?> c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
package com.chinahrt.zyn; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; public class ListTest { private List list = new ArrayList(); private List list1 = new ArrayList(); public void init(){ for(int i=0;i<5;i++){ list.add(i); } for(int i=3;i<9;i++){ list1.add(i); } } //交集 public void getIntersection(Collection e1,Collection e2){ e1.retainAll(e2); for(Iterator it = e1.iterator();it.hasNext();){ System.out.println("交集--"+it.next()); } } //并集 public void getUnion(Collection e1,Collection e2){ e1.removeAll(e2); e1.addAll(e2); for(Iterator it = e1.iterator();it.hasNext();){ System.out.println("并集--"+it.next()); } } public static void main(String[] args){ ListTest listTest = new ListTest(); listTest.init(); listTest.getIntersection(listTest.list, listTest.list1); listTest.getUnion(listTest.list, listTest.list1); } }
打印结果:
交集--3 交集--4 并集--3 并集--4 并集--5 并集--6 并集--7 并集--8
只要是实现了Collection接口的都可以采用此种方式得到交集和并集。
上一篇: phpGACL汉语手册(九)扩展权限对象
推荐阅读