if语句与arraylist有问题

时间:2016-04-12 17:55:24

标签: java

所以基本上我正在制作一个程序,该程序获取医院中某些患者的ID号,并通过键入该患者的ID号显示用户想要看到的一个特定患者的记录。我可以存储不同患者和病人的信息,但是当我必须使用if语句打印某个患者的记录时,它不起作用!我在if语句中得到一个错误:/这是程序: -

package samplee.java;
import java.util.*;
import java.util.ArrayList;
import java.util.Scanner;

public class patient$ {

    public static void main(String[] args) {
        ArrayList<patientss> patient1= new ArrayList<patientss>();
        Scanner src= new Scanner(System.in);
        Scanner sc= new Scanner(System.in);
        Scanner stc= new Scanner(System.in);
        int id,it,num,i;
        String name;
        int ages;
        System.out.println(" j");
        Boolean leave = false;
        while(!leave){
            patientss xx= new patientss();
            System.out.println("Enter the patient's ID ");
            System.out.println("-1 to finish entering");
            id=src.nextInt();
            if(id != -1){
            xx.setId(id);

        } 
            System.out.println("Enter the patient's name ");
        System.out.println("-1 to finish entering");
        name=stc.next();
        if(id != -1){
            xx.setName(name);
            patient1.add(xx);
        } 
            else { leave = true; }//Escape the while loop.
        }
        System.out.println("Enter the id of a student");
        it=sc.nextInt();
        patientss tt= new patientss();
        for(i=0;i<patient1.size();i++){
            {
            tt=patient1.get(i);
        if(it==tt) // this is the statement that isn't working and is showing error.
            System.out.println(tt.toString());
            }
        }
    }

}

并且这里是耐心的课程

package samplee.java;

public class patientss {
int id;
String name;
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}
public String toString(){
    return name+" "+id;
}
}

1 个答案:

答案 0 :(得分:1)

it=sc.nextInt();
patientss tt= new patientss();
...
if(it==tt)

它和tt分别是不同的类型,int和patientss。你的代码应该(可能)是:

if(it==tt.getID()) 

另外,你的命名惯例很奇怪,你应该把你的第一个字母大写&#39;名称并且不要在其中使用$和其他符号。