/***@author: Sam.yang
* @date: 2020/11/16 11:14
* @desc: Set集合操作工具类*/
public classSetOptUtils {/*** 取两数交集.
*
* Example:
*
*
* src={1,2,3},dest={2,4}
* intersect(dest,src)={2}
*
*
*@paramdest
* The destination set.
*@paramsrc
* The source set.
*@returnthe same elements of src and dest*/
public static Set intersect(Set dest, Setsrc) {
Set set = new HashSet(src.size());
copy(set, src);
set.retainAll(dest);returnset;
}/*** 取两数并集.
*
* Example:
*
*
* src={1,2,3},dest={2,4,5}
* union(dest,src)={1,2,3,4,5}
*
*
*@paramdest
* The destination set.
*@paramsrc
* The source set.
*@returnthe all elements of src and dest*/
public static Set union(Set dest, Setsrc) {
Set set = new HashSet(src.size());
copy(set, src);
set.addAll(dest);returnset;
}/*** 取两数差集(减法).
*
* Example:
*
*
* src={1,2,3},dest={2,4,5},src-dest={1,3}
* diff(dest,src)={1,3}
*
*
*@paramdest
* The destination set.
*@paramsrc
* The source set.
*@returnthe elements in src but not exist dest*/
public static Set diff(Set dest, Setsrc) {
Set set = new HashSet(src.size());
copy(set, src);
set.removeAll(dest);returnset;
}/*** 集合判空.
*
*@paramc
* The source collection.
*@returntrue/false*/
public static boolean isEmpty(Collection>c) {boolean rs = false;if (c == null || (c != null &&c.isEmpty())) {
rs= true;
}returnrs;
}/*** 判断两集合是否有相同的元素.
*@paramdest The destination set.
*@paramsrc The source list.
*@returntrue/false*/
public static boolean isSameElements(Set dest, Setsrc) {if (isEmpty(dest) ||isEmpty(src)) {return false;
}
Set set =intersect(dest, src);if (set.size() > 0) {return true;
}return false;
}/*** Copies all of the elements from src set into dest.
*
*@paramdest
* The destination set.
*@paramsrc
* The source list.*/
private static void copy(Set dest, Setsrc) {
dest.addAll(src);
}public static voidmain(String[] args) {
Set set = new HashSet();
Set set2 = new HashSet();
set.add("111");
set.add("010W");
set2.add("010W");
System.out.println(diff(set, set2));
}