gpt4 book ai didi

Java - 列表中的所有元素变得相同

转载 作者:行者123 更新时间:2023-12-01 11:00:28 24 4
gpt4 key购买 nike

我在使用 for 循环将元素分配给列表时遇到问题。这是我遇到问题的代码部分:

private static List<String[]> modify(List<String[]> data) {
List<String[]> data2 = new ArrayList<>();
for (int i=0; i<data.size(); i++) {
String[] block = data.get(i);
// some code here to modify the contents of block
data2.add(block);
}
return data2;
}

由于某种原因,此方法返回一个 List,其所有元素都完全相同。我尝试输出 List 元素来查看发生这种情况的位置,它似乎发生在循环之外。例如,这个:

private static List<String[]> modify(List<String[]> data) {
List<String[]> data2 = new ArrayList<>();
for (int i=0; i<data.size(); i++) {
String[] block = data.get(i);
// some code here to modify the contents of block
data2.add(block);
System.out.println(Arrays.toString(data2.get(i));
}
return data2;
}

显示不同元素的列表,而:

private static List<String[]> modify(List<String[]> data) {
List<String[]> data2 = new ArrayList<>();
for (int i=0; i<data.size(); i++) {
String[] block = data.get(i);
// some code here to modify the contents of block
data2.add(block);
}
for (int i=0; i<data2.size(); i++) {
System.out.println(Arrays.toString(data2.get(i)));
return data2;
}

显示仅包含相同元素的列表。在我看来,元素被正确添加到 for 循环内部的列表中,但最终变得相同。这是为什么,我该如何解决它?

最佳答案

您可能应该创建一个临时字符串来进行操作,初始化您的字符串数组,然后用您的数据填充它,然后将其传递给 data2,如下所示:

private static List<String[]> modify(List<String> data) {
List<String[]> data2 = new ArrayList<>();
for (int i=0; i<data.size(); i++) {
String tempString = data.get(i);
String[] block = new String[255];
// some code here to modify the contents of block
// actually fill block with data
block.add("modified data");
block.add("more manipulated data");
data2.add(block);
}
return data2;
}

编辑这应该可以解决无法编译的问题!

关于Java - 列表中的所有元素变得相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33372768/

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