java 怎么设计一个set类 然后new两个set对象 进行交集 并集 求代码

Python046

java 怎么设计一个set类 然后new两个set对象 进行交集 并集 求代码,第1张

import java.util.Iterator

import java.util.Set

import java.util.TreeSet

public class MySet {

public static void main(String[] args) {

Set set1 = new TreeSet()

set1.add("aa")

set1.add("bb")

set1.add("CC")

Set set2 = new TreeSet()

set2.add("aa")

set2.add("eeff")

Set unionSet = MySet.union(set1, set2)

Set intersectionSet = MySet.intersection(set1, set2)

printSet(unionSet)

System.out.println("-----------------------------")

printSet(intersectionSet)

}

private static void printSet(Set set) {

Iterator ite = set.iterator()

while(ite.hasNext()){

System.out.println(ite.next().toString())

}

}

public static Set union(Set set1, Set set2){

Set set = new TreeSet()

set.addAll(set1)

set.addAll(set2)

return set

}

public static Set intersection(Set set1, Set set2){

Set set = new TreeSet()

if(set1.size() >set2.size()){

set.addAll(set2)

}else{

set.addAll(set1)

}

Iterator ite = set.iterator()

while(ite.hasNext()){

Object obj = ite.next()

if(!(set1.contains(obj) &&set2.contains(obj))){

set.remove(obj)

}

}

return set

}

}

--------------------------

CC

aa

bb

eeff

-----------------------------

aa

虽然想尽量维持你程序的原型,但是还是改的差不多了。学java注重的是面向对象的思想,建议你不要把太多精力放在这些算法上面,不能再像学习C语言那样学习java。

public class Group{

public void jiaoji(int[] a,int[] b){

for(int i=0i<a.lengthi++){

for(int j=0j<b.lengthj++){

if(a[i]==b[j]){

System.out.print(a[i]+",")

}

}

}

}

public void bingji(int[] a,int[] b){

for(int i=0i<a.lengthi++){

System.out.print(a[i]+",")

}

for(int i=0i<b.lengthi++){

boolean flag=true

for(int j=0j<a.lengthj++){

if(b[i]==a[j]){

flag=false

}

}

if(flag){

System.out.print(b[i]+",")

}

}

}

public static void main(String[] args){

int a[]={1,2,3,4,5}

int b[]={4,5,6,7,8}

Group group=new Group()

System.out.print("交集为:")

group.jiaoji(a,b)

System.out.print("\n并集为:")

group.bingji(a,b)

}

}

//交集

set1.retainAll(set2)

//差集

set1.removeAll(set2)

//并集1

set1.addAll(set2)