如何在Java中的数组的每个索引中创建ArrayList?

时间:2014-07-27 12:57:32

标签: java arrays arraylist

我正在尝试实现桶排序,我想为数组的每个索引创建一个arraylist。我想做这样的事情:

int bucket[]=new int[max+1];
for(i=0;i<=max/5;i++)
{
    bucket[i]=new ArrayList<Integer>();
}

但上面的代码不起作用并引发错误。它声明“通用数组创建”。我知道java中不允许使用通用数组类型,但是我无法理解泛型类型在这里的位置我的意思是或者。我也想知道有没有办法将Integer转换为int在创建ArrayList时,我希望这样做可以解决这个问题。

1 个答案:

答案 0 :(得分:1)

您的数据类型不匹配 ...

您正试图将ArrayList<Integer>放入int[]。它不能保存这类数据!

请重新考虑您想要的内容:

int[][]
ArrayList<int[]>
ArrayList<ArrayList<Integer>>
ArrayList<Integer>[]  <--- thi is not well-supported due to the way generics work

如果你想要更高的性能,你应该看看GNU Trove,也许可以使用

ArrayList<TIntList>

应该使用比ArrayList<ArrayList<Integer>>少得多的内存。

如果你的数据大小是固定的,你可能正在寻找

int[][] bucket = new int[max+1][max/5+1];