java的集合操作(交集、并集、差集)整理
http://my.oschina.net/u/576818/blog/411017
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
Java代码 /** * 求ls对ls2的差集,即ls中有,但ls2中没有的 * * @param ls * @param ls2 * @return */ public static List diff(List ls, List ls2) { List list = new ArrayList(Arrays.asList(new Object[ls.size()])); Collections.copy(list, ls); list.removeAll(ls2); return list; } /** * 求2个集合的交集 * * @param ls * @param ls2 * @return */ public static List intersect(List ls, List ls2) { List list = new ArrayList(Arrays.asList(new Object[ls.size()])); Collections.copy(list, ls); list.retainAll(ls2); return list; } /** * 求2个集合的并集 * * @param ls * @param ls2 * @return */ public static List union(List ls, List ls2) { List list = new ArrayList(Arrays.asList(new Object[ls.size()])); Collections.copy(list, ls);//将ls的值拷贝一份到list中 list.removeAll(ls2); list.addAll(ls2); return list; } |
