//取多個集合的交集
private Set<String> getIntersection(List<List<String>> list ) {
Set<String> set = new HashSet<String>();
int size = list.size();
if(size > 1){
//取集合中的交集 for (int i = 0; i < size; i++) { int j = i+1; if(j < size ){ list.get(0).retainAll(list.get(j)); if(i == size - 2){ List<String> resultList = list.get(0); for (String name : resultList) { set.add(name); } } } } }else {
//只有一個集合則不取交集 for (List<String> list2 : list) { for (String name : list2) { set.add(name); } } }
return set;
}
// 求多個集合的並集
private Set<String> getUnion(List<List<String>> list) {
Set<String> set = new HashSet<String>();
if(list == null){list = new ArrayList<List<String>>();}
int size = list.size();
if(size > 1){
for (int i = 0; i < size; i++) {
int j = i+1;
if(j < size ){
list.get(0).removeAll(list.get(j));
list.get(0).addAll(list.get(j));
if(i == size - 2){
List<String> resultList = list.get(0);
for (String name : resultList) {
set.add(name);
}
}
}
}
}else {
//只有一個集合則直接插入結果
for (List<String> list2 : list) {
for (String name : list2) {
set.add(name);
}
}
}
return set;
}