gpt4 book ai didi

java - 无法显示 ArrayList

转载 作者:搜寻专家 更新时间:2023-11-01 01:53:54 30 4
gpt4 key购买 nike

我正在对 arrayLists 的 arrayList 进行繁重的操作。当我试图显示父数组列表时,我遇到了一个问题,它显示如下所示的空数组列表

我的 arrayList 声明如下

List<List<String>> arrayList = new ArrayList<List<String>>();

这是我的 child 名单

List<String> stringLine = new ArrayList<String>();

在我的程序中,我像这样将这个 stringLine 添加到 arrayList

arrayList.add(stringLine);

尝试打印父 arrayList 时的输出到目前为止 44 内容的 arrayList 的打印大小是:[[], [], [], [], [], [], [], [], [], [], [], [] []、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[] , [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]

注意:上面输出的44是它拥有的arrayList元素的个数

当我尝试打印 child 时,它显示良好

StringLine is : [1640, 1138, 878, 1600, 1978, 280, 24, 2509, 702, 553, 2362, 2019, 1558, 2494, 823, 35, 1181, 1915, 1261, 1448, 493, 798, 1160, 651, 2249, 1639, 2428, 458, 2556, 939, 2114, 2339, 2373, 286, 2078, 844, 2673, 1486, 1657, 1531, 1043, 734, 2247, 2121, 75, 2599, 975, 29, 175, 960, 2151, 480, 868, 2627, 1941, 671, 2529, 1952, 1623, 2160, 2298]

我哪里错了?

更新:

这是我的代码片段,我在其中向父 arrayList 添加一个列表

private void splitString(String temp) {
System.out.println("In splitString method..");
List<String> stringLine = new ArrayList<String>();
StringTokenizer stringTokenizer = new StringTokenizer(temp, " ");
while (stringTokenizer.hasMoreTokens()) {
stringLine.add(stringTokenizer.nextToken());
}
if (stringLine.size() != 3) {
arrayList.add(stringLine);
}
stringLine.clear();
}

最佳答案

更新

发布您的代码后,错误很明显。正如你在这里看到的List#clear将删除 List 中的所有元素.由于您是有意删除它们,因此输出为空也就不足为奇了。

删除此行:stringLine.clear();一切都会好起来的。您正在传递 List<String>通过引用 arrayList.add ,这意味着它仍将指向相同的 stringLine你正在清理。如果你真的需要清除你需要深度克隆。

您需要嵌套 for in正确循环,一切都会正常工作:

List<List<String>> arrayList = new ArrayList<List<String>>();
List<String> stringLine = new ArrayList<String>();
stringLine.add("5");
stringLine.add("7");
arrayList.add(stringLine);
for (List<String> list : arrayList) {// each list in the arrayList
for (String current : list) {// each element in each list
System.out.println(current);
}
}

或者如果你想打印整个 List立刻:

for (List<String> list : arrayList) {// each list in the arrayList
System.out.println(list); // will work as expected.
}

关于java - 无法显示 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16525731/

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