您的位置:首页 > 编程语言 > Java开发

Java中取多个集合的交集和并集

2014-09-10 16:05 477 查看
//取多个集合的交集

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: