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)