2012-03-15 41 views
0

我正在嘗試基數排序,但我無法解決arraylist的arraylist。該列表有10個空格,每個空格都有一個大小爲n的桶。尋址多維數組列表

ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>(10); 
ArrayList<Integer> bucket = new ArrayList<>(); 
bucket.add(99); 
list.add(bucket); 
list.add(bucket); 
list.get(0).add(12); (6) 

當我嘗試使用(6)它增加了12列表內的每個數組列表(大概是因爲它們都桶)中的值增加。我怎樣才能正確地初始化數組列表,使我能夠獨立處理列表中的每個數組列表?我會以類似的方式訪問列表中每個數組列表的元素嗎?

+0

是這個家庭作業? – bvulaj 2012-03-15 20:22:27

+0

您添加的2個桶相同(指向相同的數組列表)。每次需要實例化一個新的ArrayList(bucket = new ArrayList();),然後將其添加到列表中。 – assylias 2012-03-15 20:23:32

回答

0

當您在listArrayList中添加12時,您將添加到引用的ArrayList,在本例中爲bucketlist.get(0)list.get(1)都將返回對相同的ArrayListbucket的引用。

1

我想你要找的是什麼

for (int i = 0; i < 10; i++) { 

    list.add(new ArrayList<>()); 

} 

您可以爲每個桶設置大小,如果你想還 - 我想通過傳遞希望的大小,ArrayList的構造

+0

http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions :) – bvulaj 2012-03-15 20:39:01

+0

太好了,謝謝。這個練習提供給我的並不是完全沒有作業的作業 – user1272525 2012-03-15 20:45:07

+0

@brandonv謝謝你指出 – 2012-03-15 20:53:10