【发布时间】:2014-12-09 19:40:49
【问题描述】:
我创建了一个类来定义名为Data 的对象,它将行号、变量值和变量名存储在字符串中。
我想用从 txt 文件中获取并存储在字符串变量line 中的信息填充数据对象,并且我正在使用下面的 while 循环来填充我的数据对象:
while(line !=null){
input.setLN(line);
line = inputBuffer.readLine();
input.setVN(line);
line = inputBuffer.readLine();
input.setVV(line);
line = inputBuffer.readLine();
counter ++;
但是,然后我想将每个 Data 对象添加到 Vector(必须使用 Vector 完成),这样我就可以存储每个 LN、VN、VV 并能够从向量。
我已使用以下代码声明了 Data 对象的向量:
Vector<Data> myVector=new Vector<Data>();
但是,while 循环的每次迭代都会覆盖分配给数据对象的先前值,因此当我在 while 循环底部使用以下代码时,向量中只会存储一个 Data 对象:
myVector.add(input);
我知道我需要在循环的每次迭代之后创建input 的副本,并将该副本存储到Vector 中,然后再将新值放入input,但是我不确定如何最好这样做。
任何建议表示赞赏
【问题讨论】:
-
变量范围在这里很重要。如果您在“while”循环之前声明了“input”,则只会创建一个实例,因此您对其所做的每一项更改都将反映在向量的内容中。 Eran 的回答很好,因为“Data”对象在循环内创建,所以每次迭代都会创建一个新实例。
-
我将如何/在哪里将这些 Data 对象添加到我的 Vector 中?
-
“数据输入 = new Data();”之间的任何位置你的循环结束会很好
标签: java loops object vector while-loop