迭代基于用户输入附加值的ArrayList

时间:2015-05-07 01:13:08

标签: java list arraylist iteration

我正在尝试编写一种方法,根据用户输入一次更改一个ArrayList中所有对象的值。用户通过对话框输入值,然后将其转换为整数并分配给值。

该列表名为studentList,并使用Student对象填充。这些对象具有名称和名为Result的int值。我当前的问题是,对话框中的第一个输入值一次添加到所有变量,任何后续条目都没有效果。我需要的是第一个条目更改第一个Object的值,然后通过列表移动到下一个对象并请求用户的另一个输入,依此类推。

我正在使用定制的Dialog.request导入框架来获取用户输入。只需考虑这些行就意味着要出现一个弹出对话框,并以字符串形式请求用户输入

这是我的方法,它位于一个名为Group

的类中
public void recordResult()
   {
      int inputResult; 
      String inputString;
      inputString = Dialog.request("Please Enter A Result");
      inputResult = Integer.parseInt(inputString);


         for(Student s : studentList)
         {
             s.setResult(inputResult);
             inputString = Dialog.request("Please Enter Another Result");
         }

   }

我认为问题存在于for循环中。

我试图排除任何不必要的代码,只是包含了我想要实现的方法。其他假设setResult方法存在于Student类中,并填充了studentList。在此先感谢,我希望这只是一个小小的调整

1 个答案:

答案 0 :(得分:1)

行为是预期的,因为inputResult仅基于第一个inputString计算一次。您应该将对话框请求放在循环中,如下所示:

 public void recordResult()
 {
  int inputResult; 
  String inputString = null;

  for(Person : aList)
  {  
     if (inputString == null) {
        inputString = Dialog.request("Please Enter A Result");
     } else {
        inputString = Dialog.request("Please Enter Another Result");
     } 
     inputResult = Integer.parseInt(inputString);
     s.setResult(inputResult);
  }

}