我正在尝试基数排序,但我遇到了解决arraylists的arraylists问题。该列表有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)添加值时,它为列表中的每个arraylist添加12(可能是因为它们都是桶)。如何正确初始化arraylist,以便我独立处理列表中的每个arraylist?我会以类似的方式访问列表中每个arraylist的元素吗?
答案 0 :(得分:1)
我认为您正在寻找的是
for (int i = 0; i < 10; i++) {
list.add(new ArrayList<>());
}
如果需要,您可以为每个存储桶设置一个大小 - 我想通过将所需的大小传递给ArrayList构造函数
答案 1 :(得分:0)
当您向ArrayList
中的list
添加12时,您将添加到引用的ArrayList
,在这种情况下为bucket
。 list.get(0)
和list.get(1)
都会返回对同一ArrayList
,bucket
的引用。