我正在制定一个程序来模拟患者及其疾病的严重程度。
我在将一个类的不同实例添加到另一个类时遇到了麻烦。
出于某种原因,当我使用while循环时,它最终只生成一个实例。
这是我的代码:
while(myScan.hasNext()){
String line = myScan.nextLine();
String [] storage = line.split(",");
int severity = Integer.parseInt(storage[1]);
Patient x = new Patient(storage[0],severity);
Priority.add(x);
}
当我单独创建每个实例并打印我的“优先级”类时,它工作正常。但是当使用while循环时,它只打印出最后一个实例,好像它被覆盖了一样。
例如:
Patient p1 = new Patient(name1,1);
Patient p2 = new Patient(name2,2);
Patient p3 = new Patient(name3,3);
这样可以正常工作。但不是在使用while循环从文件中读取时。 它只会打印p3。
答案 0 :(得分:0)
我无法将优先级定义为存储(array / linkedList)。因此,您需要创建变量来存储患者的数据实例。
ArrayList<Patient> items = new ArrayList<Patient>();
while(myScan.hasNext()){
String line = myScan.nextLine();
String [] storage = line.split(",");
int severity = Integer.parseInt(storage[1]);
Patient x = new Patient(storage[0],severity);
items.add(x);
}
现在项目应包含已创建的患者。 我希望它是Java:D
答案 1 :(得分:0)
我认为那是因为你没有在你的结构上进行迭代。 您只是一遍又一遍地使用相同的患者x。
您应该使用列表或患者阵列来创建不同的患者 或者您使用优先级?如果是的话,你应该能够让你的不同患者脱离这个“名单”。
编辑:示例:
LinkedList<Patient> listOfPatients = new LinkedList<>();
while(myScan.hasNext){
.
.
.
Patient x = ... ;
listOfPatients.add(x);
}
Patient p1=listOfPatients.getAt(0);
Patient p2=listOfPatients.getAt(1);
.
.
.
只是一个简单的例子。我希望它有所帮助。