使用循环java创建链接列表的链接列表数组

时间:2014-09-06 15:10:05

标签: java loops linked-list

我已经成功实现了Radix排序,但是我有以下代码要转换为由循环创建。

private static LinkedList[] bucket = { 
        new LinkedList(), // -9
        new LinkedList(), // -8
        new LinkedList(), // -7
        new LinkedList(), // -6
        new LinkedList(), // -5
        new LinkedList(), // -4
        new LinkedList(), // -3
        new LinkedList(), // -2
        new LinkedList(), // -1
        new LinkedList(), // 0
        new LinkedList(), // 1
        new LinkedList(), // 2
        new LinkedList(), // 3
        new LinkedList(), // 4
        new LinkedList(), // 5
        new LinkedList(), // 6
        new LinkedList(), // 7
        new LinkedList(), // 8
        new LinkedList() // 9
};

然而,我无法弄清楚如何做到这一点。 我尝试了这个但是我遇到了编译器错误。

private static LinkedList[] bucket;
int thing = 19;
while(thing != 0){
    bucket = new LinkedList();
    thing--;
}

这对我的基数排序的功能并不重要,因为它完美无缺,我只是觉得用循环初始化我的桶会更干净。如果有人能告诉我如何做到这一点,我将非常感激。

3 个答案:

答案 0 :(得分:1)

你走了:

private static LinkedList[] bucket = new LinkedList[19];

static {
    for (int i = 0; i < bucket.length; ++i) {
        bucket[i] = new LinkedList();
    }
}

答案 1 :(得分:0)

您的LinkedList[]存储桶未初始化,因此您将在运行时获得NullPointerException。此外,数组元素分配的语法错误

private static LinkedList[] bucket = new LinkedList[20];
int thing = 19;
while(thing != 0){
    bucket[thing] = new LinkedList();
    thing--;
}

答案 2 :(得分:0)

首先设置数组的大小(将在其中有多少LinkedList),然后从零迭代到该大小,并将数组的索引设置为新的{{ 1}} S上。

例如,如果LinkedList是你的迭代器变量,你会说:

i

记住您正在处理的类型:单个bucket[i] = new LinkedList();及其中的数组。您不能将整个数组分配给一个LinkedList。您必须将元素分配给LinkedList,以匹配类型。