使用while循环创建对象实例

时间:2013-07-14 22:00:07

标签: java class object multiple-instances

我正在制定一个程序来模拟患者及其疾病的严重程度。

我在将一个类的不同实例添加到另一个类时遇到了麻烦。

出于某种原因,当我使用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。

2 个答案:

答案 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);
.
.
.

只是一个简单的例子。我希望它有所帮助。