我有以下代码:
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();上报错。我将如何解决此问题,而无需使用强制转换。
答案 0 :(得分:1)
请尝试
Integer v = (Integer)L1.removeFirst();
答案 1 :(得分:1)
方法的参数是原始类型,这就是为什么当您对它执行get操作时,会得到一个对象类型。要使用TYPECAST进行此操作,同时使用get操作
Integer v = (Integer)L1.removeFirst();
或将方法参数类型LinkedList L1
更改为LinkedList<Integer> L1
但最好的方法是第二次更改参数类型