当前页面: 开发资料首页 → J2SE 专题 → 对比的问题,请大家指点。
对比的问题,请大家指点。
摘要: 对比的问题,请大家指点。
一个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
System.out.println(A.elementAt(a));
System.out.println("----------------");
System.out.println(B.size());
System.out.println("----------------");
for (int b=0;b
System.out.println(B.elementAt(b));
System.out.println("#####");
for (int a=0;a
String a1=(String)A.elementAt(a);
for (int b=0;b
if(a1.equals(B.elementAt(b)))
A.removeElementAt(a);
}
for (int a=0;a
System.out.println(A.elementAt(a));
System.out.println("----------------");
//System.out.println(B.size());
for (int b=0;b
System.out.println(B.elementAt(b));
}
public static void main(String args[]){
testaa aa=new testaa();
aa.cop();
}
}
我觉得可以利用一下retainAll这个方法
void select( Vector a,Vector b)
{
boolean flag;
for (int i=0;i
{
flag=true;
for (int j=0 ; j
{
if (a.elementAt(i)==b.elementAt(j))
{
flag=false;
break;
}
}
if (flag)
{
c.add(a.elementAt(i));
}
}
for (int z=0 ; z
{
System.out.println(c.elementAt(z));
}
}
通过记得给我分啊
public boolean retainAll(Collection<?> c)
好的我试一下,我是才学JAVA的,能不能多给我说一些关于对比这料的东东
ly342540479 能不能在我那个原来基础上写出来,我想得到最终的就是从Vector A del 了Vector B后的Vector A
那是一个通用的函数,你只要调用就OK了
楼主是初学吗?
那请不要用Vector,官方推荐使用ArrayList类
ArrayList是不是比Vector好得多,在哪方面好呢
ly342540479
c.add(a.elementAt(i));
}
}
for (int z=0 ; z
{
System.out.println(c.elementAt(z));
写的是无法解析,是不是构造函数要写成void select( Vector a,Vector b,Vector b)
不好意思哈,我没得杂子编程基础,就是从0开始学的JAVA,已前杂子编程都没整过
ArrayList用于单线程,效率稍微高一些,而且它实现了Collection接口,好处多多,你慢慢就体会到了。
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();
}
}
问题在于你找到了一个相同元素以后,移除掉,但是游标没有回移,所以跳过了一个元素
原来是这样,多谢,又学到了一样,游标问题,谢谢!