我正在嘗試初始化 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
提交
取消