Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java创建多个对象_Java_Loops_Object_Vector_While Loop - Fatal编程技术网

Java创建多个对象

Java创建多个对象,java,loops,object,vector,while-loop,Java,Loops,Object,Vector,While Loop,我创建了一个类来定义名为Data的对象,它以字符串形式存储行号、变量值和变量名。 我想用从txt文件中获取并存储在字符串变量行中的信息填充数据对象,我正在使用下面的while循环填充我的数据对象: while(line !=null){ input.setLN(line); line = inputBuffer.readLine(); input.setVN(line); line = inputBu

我创建了一个类来定义名为
Data
的对象,它以字符串形式存储行号、变量值和变量名。 我想用从txt文件中获取并存储在字符串变量
中的信息填充数据对象,我正在使用下面的while循环填充我的数据对象:

while(line !=null){
            input.setLN(line);
            line = inputBuffer.readLine();
            input.setVN(line);
            line = inputBuffer.readLine();
            input.setVV(line);
            line = inputBuffer.readLine();
            counter ++;
但是,我想将每个单独的
数据
对象添加到
向量
(必须使用
向量
)中,以便存储每个LN、VN、VV,并能够从向量中输出它们

我使用以下代码声明了
数据
对象的向量:

Vector<Data> myVector=new Vector<Data>();
我知道我需要在循环每次迭代后创建一个
输入
的副本,并在将新值引入
输入
之前将该副本存储到
向量
,但我不确定如何最好地做到这一点

有什么建议吗

我知道我需要在每次循环迭代后创建一个输入副本,并在将新值输入之前将该副本存储到向量中,但我不确定如何最好地做到这一点

那么:

while(line !=null) {
    Data input = new Data();
    input.setLN(line);
    line = inputBuffer.readLine();
    input.setVN(line);
    line = inputBuffer.readLine();
    input.setVV(line);
    line = inputBuffer.readLine();
    counter ++;
    ...
    myVector.add(input);
}

变量范围在这里很重要。如果在“while”循环之前声明了“input”,那么只会创建一个实例,因此对它所做的每一个更改都会反映在向量的内容中。Eran的答案是好的,因为中的“数据”对象是在循环内部创建的,因此每次迭代都将创建一个新实例。然后如何/在何处将这些数据对象添加到向量中?介于“数据输入=新数据();”之间的任何位置你的循环结束时会很好,那么我该如何/在哪里将这些数据对象添加到我的向量中?@Andisvenson你会在循环的每次迭代结束时添加它们。参见编辑
while(line !=null) {
    Data input = new Data();
    input.setLN(line);
    line = inputBuffer.readLine();
    input.setVN(line);
    line = inputBuffer.readLine();
    input.setVV(line);
    line = inputBuffer.readLine();
    counter ++;
    ...
    myVector.add(input);
}