使用循环java创建一个链表数组



我已经成功地实现了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--;
}

这对基数排序的功能并不重要,因为它工作得很完美,我只是认为用循环初始化我的bucket会更干净。也就是说,如果有人能启发我如何做到这一点,我将不胜感激。

开始:

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

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

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

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

例如,如果i是迭代器变量,您会说:

bucket[i] = new LinkedList();

记住您正在处理的类型:单个LinkedList和它们的数组。不能只将整个数组分配给一个LinkedList。您必须将元素分配给LinkedList,以匹配类型。

相关内容

  • 没有找到相关文章

最新更新