不兼容的类型:必需的int通用链表中的int发现对象错误

问题描述

|| 我正在写一个基数排序算法(仅对整数排序),遇到了一个问题,这可能是一个简单的解决方法,我似乎找不到它。 我在这里创建和链接列表数组来保存我的整数:
LinkedList[] buckets = {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 found对象错误。 我的链表仍然是保持整数,为什么它说它是一个对象?我是否必须沿着这些路线向下投射某处? 谢谢。     

解决方法

        查看您的声明:
LinkedList[] buckets
您已经声明了原始
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++;
    }
}