我想比较这两个向量,这样它就会返回多少病人也是学生。我得到了main,我已经添加到histandmarks方法中,但它似乎不起作用。主要的困惑在于histandmarks方法,以及如何比较两个向量。
谢谢
import java.util.*;
public class Ex6 {
public static int count = 0;
public static void main(String[] a)
{
Vector<Patient> P = new Vector<Patient>();
Vector<Student> S = new Vector<Student>();
int i=Integer.parseInt(a[0]);
if (i==0) {
P.add(new Patient("Jimmy1","1","d"));
P.add(new Patient("Jimmy2","1","d"));
P.add(new Patient("Jimmy3","1","d"));
P.add(new Patient("Jimmy","1","d"));
S.add(new Student("Jimmy1","1",null) );
S.add(new Student("Jimmy2","1",null) );
S.add(new Student("Jimmy3","1",null) );
S.add(new Student("Lisa","1",null) );
System.out.println(new Ex6().HistAndMarks(P,S));
}
if (i==1) {
P.add(new Patient("Jimmy","1","d"));
S.add(new Student("Jimmy1","1",null) );
System.out.println(new Ex6().HistAndMarks(P,S));
}
if (i==2) System.out.println(new Ex6().HistAndMarks(P,null));
}
public static int HistAndMarks (Vector<Patient> P, Vector<Student> S) {
for(int i = 0; i > P.size(); i++){
for(int z = -1; z > S.size(); z++){
Patient Pnew = P.get(i);
Student Snew = S.get(z + 1);
if(P.contains(S)){
count = count + 1;
}
}
}
return count;
}
}
2条答案
按热度按时间inkz8wg91#
我先看看
这是比较两个向量,而不是其中的单个元素。它实际上是说向量p中的向量s,这不是你想要检查的。
您已经隔离了pnew和snew-这是两个您想要相互比较的对象。为了比较它们,您需要有一个规则来指示这两个元素是否实际上是同一个人。简单地说,如果pnew所代表的人的名字与snew所代表的人的名字相同,那么这两个人可以被认为是同一个人
bq3bfh9z2#
问题是比较无效对象
可能应该是
请注意,您不必遍历这两个列表:
请注意
Vetctor
类非常古老,不常用。您可能需要切换到列表