我是Kava的新人,我很难理解我做错了什么,以及为什么我的代码无法正常工作。
我尝试使用给定的双精度数组(double [] ar)实现存储桶排序, 并使用linkedLists的arrayList。
这是我的代码:
int n = ar.length;
//initializing the buckets
ArrayList<LinkedList<Double>> buckets = new ArrayList<LinkedList<Double>>(ar.length);
// Initialize 'n' buckets (each is a LinkedList<Double>) (B[0..n-1])
for (int i = 0; i < n -1; i++) {
buckets.add(i, new LinkedList<Double>());
}
for (int i = 0; i < n; i++) {
buckets.add((int)(n*ar[i]), ar[i]);
}
它 在&#34;添加&#34;上显示错误,它说: &#34;方法add(int,LinkedList)在ArrayList&gt;类型中;不适用于参数(int,double)&#34;
感谢。
答案 0 :(得分:0)
ArrayList<LinkedList<Double>> buckets[]
是您的ArrayList OF LinkedList Of DOUBLE。
在执行以下操作时,您将对LinkedList的ArrayList添加一个DOUBLE:
buckets[(int)(n * ar[i])].add((Double)ar[i]);
考虑更改您的存储桶声明
也许你想要的是
"ArrayList<Double> buckets[]"
但要注意实例更改为
buckets[index] = new ArrayList<Double>();