2012-03-15 5 views
0

私は基数ソートを試みていますが、私はarraylistsのarraylistsに対処するのに問題があります。リストには10​​個のスペースがあり、それぞれにサイズnのバケットがあります。多次元arraylistsのアドレッシング

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) 

Iを使用して値を追加しようとする(6)それは(それらは、両方のバケットであると推測するので)リスト内の各ArrayListのために12を加算します。 arraylistを適切に初期化して、各arraylistを個別に扱うようにするにはどうすればよいですか?同様の方法でリスト内の各アーリーリストの要素にアクセスできますか?

+0

に必要なサイズを渡すことは、この宿題です? – bvulaj

+0

追加する2つのバケットは同じです(同じarraylistを指す)。リストに追加する前に、毎回新しいarraylistをインスタンス化する必要があります(bucket = new ArrayList();)。 – assylias

答えて

0

あなたはlistArrayListに12を追加すると、あなたは、この場合にはbucketで参照さArrayListに追加されています。 list.get(0)およびlist.get(1)は両方とも、同じArrayList,bucketへの参照を返します。私はあなたにもしたい場合は、各バケットのサイズを設定することができ、あなたが探していることは

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

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

} 

だと思う

1

- 私は思うのArrayListコンストラクタ

+0

http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions :) – bvulaj

+0

ありがとう、ありがとう。そして、私に与えられたこの運動は、厳密には宿題ではなく、未評価です – user1272525

+0

@brandonvそれを指摘してくれてありがとう –