gpt4 book ai didi

java - 为什么我会得到重复的输出?

转载 作者:行者123 更新时间:2023-12-02 04:45:36 27 4
gpt4 key购买 nike

 private static ArrayList<String[]> one = new ArrayList<String[]>();
...
...
btnAdd.setOnAction(e -> {
try{
String [] lineD = new String[6];
lineD[0] = txtID.getText();
lineD[1] = txtG.getText();
lineD[2] = txtBP.getText();
lineD[3] = txtD.getText();
lineD[4] = txtSP.getText();
lineD[5] = txtCons.getText();
one.add(lineD);//adds the array to ArrayList
int i = 0;
while(i<one.size()){
output.write((Arrays.deepToString(one.get(i))));
output.newLine();
i++;
}
txtID.clear();
txtG.clear();
txtBP.clear();
txtD.clear();
txtCons.clear();
txtSP.clear();
} catch (Exception t) {
System.out.println("An error has occured " + t.getMessage());

}
});

根据我的逻辑,按钮应该添加字段中的文本,将它们放入数组中,然后将它们放入字符串数组的 ArrayList 中。该循环应该将元素数组写入我的文件。每次第一次添加时都会重复输出,然后正确写入其余部分。

输出:

[鲍勃、萨姆、戈尔奇、汤姆、史密斯、贝克]

[鲍勃、萨姆、戈尔奇、汤姆、史密斯、贝克]<--------重复为什么?

[lahm、三明治、男人、最后、厨房、食物]

最佳答案

这基本上就是您正在做的事情:

按下按钮时,将文本添加到 one 中,并将 ArrayList one 的所有元素写入文件输出流(?) output .

你看到逻辑错误了吗?

点击一次后,one是一个大小为1的ArrayList,其内容如下:

[bob, sam, goerge, tom, smith, baker]

当您第二次单击时,您将另一个元素添加到 ArrayList:

[bob, sam, goerge, tom, smith, baker]
[lahm, sandwhich, man, last, kitchen, food]

然后将这两个元素写入文件:

while(i<one.size()) {
output.write((Arrays.deepToString(one.get(i))));
output.newLine();
i++;
}

您要做的只是将最新的元素写入文件:

String[] lastElement = one.get(one.size()-1));
output.write((Arrays.deepToString(lastElement);

关于java - 为什么我会得到重复的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com