0
我正在學習在java中使用Collections。我做的,我所要的輸出是一個簡單的程序:使用ArrayList時的邏輯錯誤<ArrayList <Integer>>收集框架
[1, 2, 3]
[[1, 2, 3]]
[5, 6, 7]
[[1, 2, 3], [5, 6, 7]]
而不是讓上面的輸出我得到的輸出:
[1, 2, 3]
[[1, 2, 3]]
[5, 6, 7]
[[5, 6, 7], [5, 6, 7]]
即每次我增加一個ArrayList中新添加,但前一個也被新的替換。我不希望它被替換。任何人都可以解釋我在這裏發生了什麼?我的代碼是:
import java.util.*;
class Amit{
public static void main(String args[])
{
ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> b = new ArrayList<Integer>();
b.add(1);
b.add(2);
b.add(3);
System.out.println(b);
a.add(b);
System.out.println(a);
b.clear();
b.add(5);
b.add(6);
b.add(7);
System.out.println(b);
a.add(b);
System.out.println(a);
}
}
你是治療B,爲一種基本類型,當它是一個對象。當你改變b變成[5,6,7]時,它在兩個地方都變成了[5,6,7],因爲它是同一個對象。 – Gendarme
@Gendarme謝謝。 –