一个Vector A 一个Vector B  A的内容多于B的内容,将A内的元素一个一个去跟B内的对比,这样想把A内不同的元素列印出来。但我写的不对,请大家指点一下。谢谢!
import java.util.*;
import java.lang.*;
import java.io.*;
public class testaa {
Vector A = new Vector();
Vector B = new Vector();

void cop(){
A.add("0");
A.add("1");
A.add("2");
A.add("3");
A.add("4");
A.add("5");
A.add("6");
A.add("7");
A.add("8");
A.add("9");
B.add("6");
B.add("5");
B.add("1");
B.add("9");
B.add("3");

System.out.println(A.size());
for (int a=0;a<A.size();a++)
System.out.println(A.elementAt(a));
System.out.println("----------------");
System.out.println(B.size());
System.out.println("----------------");
for (int b=0;b<B.size();b++)
System.out.println(B.elementAt(b));

System.out.println("#####");

for (int a=0;a<A.size();a++){
String a1=(String)A.elementAt(a);
for (int b=0;b<B.size();b++)
if(a1.equals(B.elementAt(b)))
A.removeElementAt(a);
}

for (int a=0;a<A.size();a++)
System.out.println(A.elementAt(a));
System.out.println("----------------");
//System.out.println(B.size());
for (int b=0;b<B.size();b++)
System.out.println(B.elementAt(b));
}

public static void main(String args[]){
testaa aa=new testaa();
aa.cop();
}}

解决方案 »

  1.   

    我觉得可以利用一下retainAll这个方法
      

  2.   

    void select( Vector a,Vector b)
    {
    boolean flag;

    for (int i=0;i<a.size() ;i++ )
    {
    flag=true;
    for (int j=0 ; j<b.size();j++ )
    {
    if (a.elementAt(i)==b.elementAt(j))
    {
    flag=false;

    break;
    }
    }
    if (flag)
    {
    c.add(a.elementAt(i));
    }
    }
    for (int z=0 ; z<c.size();z++  )
    {
    System.out.println(c.elementAt(z));
    }
    }
      

  3.   

    public boolean retainAll(Collection<?> c)
      

  4.   

    好的我试一下,我是才学JAVA的,能不能多给我说一些关于对比这料的东东
      

  5.   

    ly342540479 能不能在我那个原来基础上写出来,我想得到最终的就是从Vector A del 了Vector B后的Vector A
      

  6.   

    楼主是初学吗?
    那请不要用Vector,官方推荐使用ArrayList类
      

  7.   

    ArrayList是不是比Vector好得多,在哪方面好呢
    ly342540479
    c.add(a.elementAt(i));
    }
    }
    for (int z=0 ; z<c.size();z++  )
    {
    System.out.println(c.elementAt(z));
    写的是无法解析,是不是构造函数要写成void select( Vector a,Vector b,Vector b)
    不好意思哈,我没得杂子编程基础,就是从0开始学的JAVA,已前杂子编程都没整过
      

  8.   

    ArrayList用于单线程,效率稍微高一些,而且它实现了Collection接口,好处多多,你慢慢就体会到了。
    Vector实现了线程同步,所以如果你只是单线程程序的话,他的性能就稍微差一点。
      

  9.   

    改的你的:
    package temp;import java.util.*;
    import java.lang.*;
    import java.io.*;public class testaa {
    Vector A = new Vector(); Vector B = new Vector(); void cop() {
    A.add("0");
    A.add("1");
    A.add("2");
    A.add("3");
    A.add("4");
    A.add("5");
    A.add("6");
    A.add("7");
    A.add("8");
    A.add("9");
    B.add("6");
    B.add("5");
    B.add("1");
    B.add("9");
    B.add("3");
    for (int a = 0; a < A.size(); a++)
    System.out.println(A.elementAt(a));
    System.out.println("----------------");

    System.out.println("----------------");
    for (int b = 0; b < B.size(); b++)
    System.out.println(B.elementAt(b)); System.out.println("#####"); for (int a = 0; a < A.size(); a++) {
    String a1 = (String) A.elementAt(a);
    for (int b = 0; b < B.size(); b++)
    if (a1.equals(B.elementAt(b))){
    A.removeElementAt(a);
    a--;
    }
    } for (int a = 0; a < A.size(); a++)
    System.out.println(A.elementAt(a));
    System.out.println("----------------");
    // System.out.println(B.size());
    for (int b = 0; b < B.size(); b++)
    System.out.println(B.elementAt(b));
    } public static void main(String args[]) {
    testaa aa = new testaa();
    aa.cop();
    }}
    问题在于你找到了一个相同元素以后,移除掉,但是游标没有回移,所以跳过了一个元素