我相信你可能从CompSci学生那里得到了很多,我尝试过搜索,但我看起来与我能找到的其他任何东西都有很多不同。无论如何,这是我的类,它应该对一个整数数组进行排序(然后在将来被修改为对对象进行排序,但是ints现在会这样做。)
我的目标是创建一个基本上是一行桶的arrayList。然后每个桶都是一个链表。我觉得我在正确的轨道上,但是编译器不喜欢我最后一行代码,所以我的想法已经用完了。
这是一个更新。这就是我现在所拥有的,但我仍然认为它不会起作用
public void sorter(){
int highest_int = 0;
for(int i=0; i<entries.length; i++){
if (highest_int < entries[i])
highest_int = entries[i];
}
ArrayList<LinkedList<Integer>> row = new ArrayList<LinkedList<Integer>>();
LinkedList<Integer> column = new LinkedList<Integer>();
while (highest_int>0){
row.add(column);
highest_int--;
}
for(int i=0; i<entries.length; i++){
int j = entries[i];
column.add(0, j);
row.set(j, column);
}
}
答案 0 :(得分:0)
编译器“不喜欢”您的代码,因为add()
的{{1}}方法没有返回任何内容(具有LinkedList
返回类型)。因此,它不能用作void
方法的参数。基本上,set()
修改了调用它的对象,但不会将该对象作为值返回。
我认为最简单的改变我认为会使你的代码编译成:
add()
除此之外,我不清楚你在这里想要实现的目标。我根本没有看到任何类似的东西。
答案 1 :(得分:0)
编译问题是column.add()返回void。
更大的问题是每个存储桶使用相同的LinkedList。您需要在其中一个for循环的每次迭代中创建一个新的LinkedList。