我正在尝试初始化 aList<String>listBuffer等于 a 的成员List<List<String>>listOfLists,而不链接它们。每次我添加到“listBuffer”时,它都会自动添加到“listOfLists”的那个成员。如何创建未链接到“listOfLists”的“listBuffer”?//初始问题 List<List<String>>listOfLists = new ArrayList<List<String>>(); listOfLists.add(new ArrayList<String>()); List<String>listBuffer = listOfLists.get(0); List<String>listBuffer2 = listBuffer;//2ndBufferAttempt listBuffer.add("anyString"); listBuffer2.add("anyString2"); System.out.println(listOfLists.get(0)); //Output is [anyString,anyString2] //Simple Solution(Not sure whether its the best way) List<List<String>>listOfLists = new ArrayList<List<String>>(); listOfLists.add(new ArrayList<String>()); List<String>listBuffer = new ArrayList<String>(); listBuffer.addAll(listOfLists.get(0)); listBuffer.add("anyString"); System.out.println(listOfLists.get(0));//Output is "[]"我希望输出为“[]”。输出改为“[anyString,anyString2]”。
2 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
编辑:更正了 java.util.Collections.copy() 的参数列表
不会=创建任何类型的新实例,而只是复制一个指针。在您的代码中,listOfLists.get(0)、listBuffer和listBuffer2指向同一内存区域,因此将它们链接在一起也就不足为奇了。如果您不想将它们链接起来,请不要链接它们。我就是这么简单
List<String>listBuffer;
List<String>listBuffer2;
Collections.copy(listBuffer, listOfLists.get(0));
Collections.copy(listBuffer2, listBuffer);//2ndBufferAttempt
创建新的、独立的、未链接的列表;那应该做的工作。
手掌心
TA贡献1942条经验 获得超3个赞
您从哪里获得基地以某种方式链接到 listOfLists。也许您可以出示您的base
声明以便更清楚。
编辑:如果您希望您的其他列表是分开的,而不是从其他地方获取它,请执行以下操作:
List<String> listBuffer = new ArrayList<String>();
添加回答
举报
0/150
提交
取消