首页
IT
登录
6mi
u
盘
搜
搜 索
IT
取得集合list的交集并集(javaAPI或者apache的API)
取得集合list的交集并集(javaAPI或者apache的API)
xiaoxiao
2021-12-14
21
javaAPI方式----------->
/**
* 求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; }
apacheAPI方式---------->
使用
CollectionUtils
中四个方法之一执行集合操作.这四种分别是 union(),intersection();disjunction(); subtract(); 下列例子就是演示了如何使用上述四个方法处理两个 Collection; 注: 这些方法都是数学的集合算法
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 import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.ArrayUtils; public class CollectionUtilsIntro { @SuppressWarnings ( "unchecked" ) public static void main(String[] args) { String[] arrayA = new String[] { "1" , "2" , "3" , "3" , "4" , "5" }; String[] arrayB = new String[] { "3" , "4" , "4" , "5" , "6" , "7" }; List<String> a = Arrays.asList(arrayA); List<String> b = Arrays.asList(arrayB); //并集 Collection<String> union = CollectionUtils.union(a, b); //交集 Collection<String> intersection = CollectionUtils.intersection(a, b); //交集的补集 Collection<String> disjunction = CollectionUtils.disjunction(a, b); //集合相减 Collection<String> subtract = CollectionUtils.subtract(a, b); Collections.sort((List<String>) union); Collections.sort((List<String>) intersection); Collections.sort((List<String>) disjunction); Collections.sort((List<String>) subtract); System.out.println( "A: " + ArrayUtils.toString(a.toArray())); System.out.println( "B: " + ArrayUtils.toString(b.toArray())); System.out.println( "--------------------------------------------" ); System.out.println( "Union(A, B): " + ArrayUtils.toString(union.toArray())); System.out.println( "Intersection(A, B): " + ArrayUtils.toString(intersection.toArray())); System.out.println( "Disjunction(A, B): " + ArrayUtils.toString(disjunction.toArray())); System.out.println( "Subtract(A, B): " + ArrayUtils.toString(subtract.toArray())); } }
输出如下: A: {1,2,3,3,4,5} B: {3,4,4,5,6,7} -------------------------------------------- Union(A, B): {1,2,3,3,4,4,5,6,7} Intersection(A, B): {3,4,5} Disjunction(A, B): {1,2,3,4,6,7} Subtract(A, B): {1,2,3}
转载请注明原文地址: https://ju.6miu.com/read-971492.html
专利
最新回复
(
0
)