是否为数组分配了多个值?

时间:2016-11-09 00:19:13

标签: java arrays

我是Java的新手,我正在尝试编写一个扫描某些患者的代码'名字,也要求他们输入(y / n),如果他们是allergicToGluten,然后我打印出所有过敏性患者的名单.ToGluten。我刚刚学习了数组,但我仍在努力为数组分配许多值(名称+ y / n)。我需要你的帮助。

非常感谢你:D

2 个答案:

答案 0 :(得分:4)

您需要创建一个代表您的患者的课程。然后你可以有一系列患者

public class Patient{
    private String name;
    private boolean allergicToGluten;

    public Patient(String name, boolean allergicToGluten){
        this.name = name;
        this.allergicToGluten = allergicToGluten;
    }

    public boolean isAllergicToGluten(){
        return allergicToGluten;
    }

    public String getName(){
        return name;
    }
}

----

Patient[] patients = new Patient[patientCount];

如果您不了解 patientCount ,那么您需要resizable-array

ArrayList<Patient> patients = new ArrayList<Patient>();
// ... reading 'name' and 'isAllergic' from input
patients.add(new Patient(name, isAllergic));

然后你可以列出过敏患者名单

for(p : patients){
    if (p.isAllergicToGluten())
        System.out.println(p.getName());
}

答案 1 :(得分:2)

没有办法为数组分配多个值,但是您可以创建一个包含多个字段的类的数组。例如,

public class Patient {
   public String name;
   public boolean isAllergic;
   public Patient(String name, boolean isAllergic) {
      this.name = name;
      this.isAllergic = isAllergic;
   }
}
public class Patient_Driver {
   public static void main(String[] args) {
      Patient[] patients = new Patient[] {
         new Patient("Steve", true),
         new Patient("Mary", false)
      };
      for (int i = 0; i < patients.length; i++) {
         if (patients[i].isAllergic) {
            System.out.println(patients[i].name);
         }
      }
   }
}

输出:

Steve