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;
}
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;
}
相关文章推荐
- java集合(交集,并集,差集)
- java集合运算:求交集,并集,集合差
- Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集...
- java求两个集合的交集和并集
- JAVA Set集合---并集,交集,差集
- java的集合操作(交集、并集、差集)整理
- Java set集合 交集,并集,差集
- Java集合工具类(一)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集...
- java8 集合求差集、并集、交集
- java求集合交集和并集
- javaSet集合的并集、差集、交集
- 集合遍历与删除,java list 交集 并集 差集 去重复并集
- Java求多个集合的交集和并集
- Java集合工具类(二)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集...
- java集合(交集,并集,差集)
- java集合运算:求交集,并集,集合差
- Java对象的深拷贝和浅拷贝、集合的交集并集
- 关于2个java集合间求交集、并集、差集
- JAVA List集合取交集并集差集
- Java学习之训练---求数组的交集、并集以及只在A数组中出现的子串集合