我的代码中出现错误,如何解决?

时间:2018-10-11 10:07:50

标签: java methods collections linked-list

我有以下代码:

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();上报错。我将如何解决此问题,而无需使用强制转换。

2 个答案:

答案 0 :(得分:1)

请尝试

Integer v = (Integer)L1.removeFirst();

答案 1 :(得分:1)

方法的参数是原始类型,这就是为什么当您对它执行get操作时,会得到一个对象类型。要使用TYPECAST进行此操作,同时使用get操作   Integer v = (Integer)L1.removeFirst();

或将方法参数类型LinkedList L1更改为LinkedList<Integer> L1

但最好的方法是第二次更改参数类型