gpt4 book ai didi

java - 不兼容的类型 : required int found object error in generic linkedlist

转载 作者:行者123 更新时间:2023-12-02 08:16:26 24 4
gpt4 key购买 nike

我正在编写一个基数排序算法(仅对整数进行排序)并遇到了问题,这可能是一个简单的解决方案,但我似乎找不到它。

我在这里创建链表数组来保存我的整数:

LinkedList[] buckets = {new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>(), new LinkedList<Integer>()};

这是来自 util 的通用链表,我只需要它来保存整数。我的问题是当我尝试运行此代码时

            for (int j = 0; j < buckets.length; j++) {
while (!buckets[j].isEmpty()) {
a[pos] = buckets[j].removeFirst();
pos++;
}

在我从“队列”中删除的行上,我收到所需的 int 找到对象错误。无论如何,我的链表都保存整数,为什么它说它是一个对象?我是否必须在某些地方或某些事情上感到沮丧?

谢谢。

最佳答案

看看你的声明:

LinkedList[] buckets

您已经声明了一个 raw 数组 LinkedList引用。您需要告诉编译器它们将是 LinkedList<Integer>值:

LinkedList<Integer> buckets = ...;

不幸的是,数组和泛型不能很好地协同工作。我建议您使用List<LinkedList<Integer>> ,像这样:

List<LinkedList<Integer>> buckets = new ArrayList<LinkedList<Integer>>();

for (int i = 0; i < 10; i++)
{
buckets.add(new LinkedList<Integer>());
}

然后:

for (LinkedList<Integer> bucket : buckets)
{
while (!bucket.isEmpty())
{
a[pos] = bucket.removeFirst();
pos++;
}
}

关于java - 不兼容的类型 : required int found object error in generic linkedlist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com