Java中使用Set进行并集,差集,交集查找
2015-05-23 16:20
471 查看
利用Java中使用Set进行并集,差集,交集查找
首先命名一个类名为DealSet存放查找并集,差集,交集的方法
DealSet.java
代码中,由于differentSet与sameSet算法可以合并,可以提高效率。
但由于某些情况下并不需要差集与交集同时计算,所以分开之。
接下来写测试类
DealSetTest.java
首先命名一个类名为DealSet存放查找并集,差集,交集的方法
DealSet.java
package SetLearning; import java.util.HashSet; import java.util.Set; public class DealSet<T> { private Set<T> differentSet ; private Set<T> sameSet ; private Set<T> unionSet ; /* * union方法计算并集 */ public Set<T> Union(Set<T> s1 , Set<T> s2){ unionSet = new HashSet<T>(); /* * 利用Set的元素不可重复特性往unionSet中添加元素形成并集 */ for(T s : s1){ unionSet.add(s); } for(T s : s2){ unionSet.add(s); } return unionSet ; } /* * sameSet方法返回并集 */ public Set<T> sameSet(Set<T> s1 , Set<T> s2){ sameSet = new HashSet<T>(); /* * 利用ForEach循环和HashSet中的contains方法判断两个Set中元素是否相交 * 相交则存入SameSet中 */ for(T s : s1){ if(s2.contains(s)) sameSet.add(s); } return sameSet; } /* * differentSet方法返回差集 */ public Set<T> differentSet(Set<T> s1 , Set<T> s2){ differentSet = new HashSet<T>(); /* * 利用ForEach循环和HashSet中的contains方法判断两个Set中元素是否相交 * 不相交则存入differentSet中 */ for(T s : s1){ if(!s2.contains(s)) differentSet.add(s); } return differentSet; } }
代码中,由于differentSet与sameSet算法可以合并,可以提高效率。
但由于某些情况下并不需要差集与交集同时计算,所以分开之。
接下来写测试类
DealSetTest.java
package SetLearning; import java.util.HashSet; import java.util.Set; public class DealSetTest { public static void main(String[] args) { /* * 初始化两个HashSet */ Set<String> hashSet1 = new HashSet<>(); Set<String> hashSet2 = new HashSet<>(); /* * 创建连个字符串数组,用于储存两个HashSet中元素 */ String[] s1 = {"George" , "Jim" , "John" , "Blake" , "Kevin" , "Mechael"}; String[] s2 = {"George" , "Katie" , "Ryan" , "Kevin" , "Mechael"}; /* * 使用ForEach循环向Hash中添加元素 * 避免一行一行添加造成代码不美观 */ for(String s : s1){ hashSet1.add(s); } for(String s : s2){ hashSet2.add(s); } /* * 调用DealSet累中个方法进行计算 */ DealSet<String> ds = new DealSet<String>(); System.out.println("Union Set is "+ds.Union(hashSet1, hashSet2)); System.out.println("Different Set is " + ds.differentSet(hashSet1, hashSet2)); System.out.println("Same Set is " + ds.sameSet(hashSet1, hashSet2)); } }
相关文章推荐
- JAVA Set 交集,差集,并集
- java Set 求交集 并集差集
- 使用cloudera impala sql 进行交集、并集、差集查询
- javaSet集合的并集、差集、交集
- java中set的交集、差集、并集的简单实现
- 求交集,差集,并集,善用java的set
- JAVA Set集合---并集,交集,差集
- java 对两个list进行“交集,并集,差集,去重复并集”的操作
- 使用Set求两个数组的并集|| 交集||差集
- ES6 使用数据类型Set求交集、并集、差集
- JAVA Set 交集,差集,并集
- Java set集合 交集,并集,差集
- 使用 Python 获取两个列表的交集、并集、差集的常用方法
- java list 交集 并集 差集 去重复并集
- c++ set求差集,并集,交集
- java中list的遍历,交集,并集,差集,去重,contains(),indexof,.lastIndexOf
- JAVA求字符串数组交集、并集和差集
- JAVA程序:字符串数组交集、并集和差集
- java求集合的并集、交集、补集、差集和对称差集
- Java中交集、并集、差集的实现