public class TestCollection{ public static void main(String[] args){ ArrayList A=new ArrayList(); System.out.print("Collection A is: "); for(int i=0;i<20;i++){ A.add(new Integer(i)); System.out.print(" "+i); } System.out.println();
ArrayList B=new ArrayList(); System.out.print("Collection B is: "); for(int i=10;i<30;i++){ B.add(new Integer(i)); System.out.print(" "+i); } System.out.println();
我想应该有用吧
Collection a=....;
Collection b=....;
Collection c=new Collection();
c.addAll(a);//先把a存到c
a.removeAll(b);//去掉与b相同的元素则:
1、c.removeAll(a);//得到的就是a与b的交。
2、b.addAll(a);//得到的就是a与b的并。速度问题值得讨论
c.addAll(a);
a.removeAll(b);
得到的结构c中没有b的元素啊。
另外
速度会差到几倍的级别吗?
import java.util.ArrayList;
public class TestCollection{
public static void main(String[] args){
ArrayList A=new ArrayList();
System.out.print("Collection A is: ");
for(int i=0;i<20;i++){
A.add(new Integer(i));
System.out.print(" "+i);
}
System.out.println();
ArrayList B=new ArrayList();
System.out.print("Collection B is: ");
for(int i=10;i<30;i++){
B.add(new Integer(i));
System.out.print(" "+i);
}
System.out.println();
ArrayList AsubB=new ArrayList();
AsubB.addAll(A);
AsubB.removeAll(B);//
System.out.print("Collection A-B is: ");
for(int i=0;i<AsubB.size();i++){
System.out.print(" "+AsubB.get(i));
}
System.out.println();
ArrayList AandB=new ArrayList();
AandB.addAll(A);
AandB.removeAll(AsubB);
System.out.print("Collection A&B=A-(A-B) is: ");
for(int i=0;i<AandB.size();i++){
System.out.print(" "+AandB.get(i));
}
System.out.println();
ArrayList AorB=new ArrayList();
AorB.addAll(AsubB);
AorB.addAll(B);
System.out.print("Collection A|B=(A-B)+B is: ");
for(int i=0;i<AorB.size();i++){
System.out.print(" "+AorB.get(i));
}
System.out.println();
}
} 烦是烦了些,应该有更好的方法,到时候可以做一下比较。