站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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;aSystem.out.println(A.elementAt(a));
System.out.println("----------------");
System.out.println(B.size());
System.out.println("----------------");
for (int b=0;bSystem.out.println(B.elementAt(b));

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

for (int a=0;aString a1=(String)A.elementAt(a);
for (int b=0;bif(a1.equals(B.elementAt(b)))
A.removeElementAt(a);
}

for (int a=0;aSystem.out.println(A.elementAt(a));
System.out.println("----------------");
//System.out.println(B.size());
for (int b=0;bSystem.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();
}

}
问题在于你找到了一个相同元素以后,移除掉,但是游标没有回移,所以跳过了一个元素


原来是这样,多谢,又学到了一样,游标问题,谢谢!


↑返回目录
前一篇: 如果我知道某一年中的第n天,如何确定第(n-m)天是某年具体的日期?
后一篇: 在纯DOS系统下可以学习JAVA吗?