一个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();
}}
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();
}}
{
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));
}
}
那请不要用Vector,官方推荐使用ArrayList类
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,已前杂子编程都没整过
Vector实现了线程同步,所以如果你只是单线程程序的话,他的性能就稍微差一点。
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();
}}
问题在于你找到了一个相同元素以后,移除掉,但是游标没有回移,所以跳过了一个元素