我有以下代码:
public static void poistaKaikki32(LinkedList L1, Collection L2) {
LinkedList<Integer> temp = new LinkedList<>();
HashSet<Integer> L2Set = new HashSet<>(L2);
// first filter elements into temp
while (L1.size() > 0) { // n loops
int v = L1.removeFirst(); <--- getting error cannot convert object to int
if (!L2Set.contains(v)) {
temp.addLast(v);
}
}
// add filtered values back to L1
while (temp.size() > 0) {
L1.addLast(temp.removeFirst());
}
}
我一直在 int v = L1.removeFirst((; 上收到错误。我将如何在不使用强制转换的情况下解决此问题。
方法的参数是原始类型的,这就是为什么当你对它执行 get 操作时,你会得到一个对象类型。Integer v = (Integer)L1.removeFirst();
或将方法参数类型LinkedList L1
更改为LinkedList<Integer> L1
但最好的方法是第二个更改参数类型
请尝试
Integer v = (Integer)L1.removeFirst();