如何在arraylist中添加一个新的linkedlist元素

时间:2014-04-23 14:09:26

标签: linked-list

我是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;

感谢。

1 个答案:

答案 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>();