我有一個類型爲String[]
的列表,其中在循環內添加數組運行n次。將元素添加到列表正在更新其所有以前的元素
String[] parsedFields = new String[fieldsToParse.length];
List<String[]> myList= new ArrayList<String[]>();
while (getType()) {
// ...
for (int i = 0; i < fieldsToParse.length; i++) {
if (name.equals(fieldsToParse[i])) {
parsedFields[i] = fieldsToParse;
// ...
}
}
myList.add(parsedFields);
}
每次將數組添加到列表中時,數組都是相同的,但數值不同。
問題是我每次在新的迭代中添加一個數組時,列表中的所有以前添加的數組根據最後一個數組的內容添加更新?
例如,在第一次迭代myList
包含:
myList > array > [0] = [1, 1, 'A']
在第二次迭代列表將變爲:
myList > array > [0] = [2, 2, 'B']
myList > array > [0] = [2, 2, 'B']
,並在第三,它將:
myList > array > [0] = [3, 3, 'C']
myList > array > [0] = [3, 3, 'C']
myList > array > [0] = [3, 3, 'C']
當while循環打破了所有列表中的數組元素包含相同的數組(實際上是添加的最後一個數組)。如何阻止它從更新的以前添加的陣列,請幫助。