Java 在我的代码中出现错误如何修复?
我有以下代码:Java 在我的代码中出现错误如何修复?,java,methods,collections,linked-list,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
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());
}
}
publicstaticvoid-ikki32(链接列表L1,集合L2){
LinkedList temp=新建LinkedList();
HashSet L2Set=新的HashSet(L2);
//首先,将滤芯装入温度传感器
而(L1.size()>0){//n个循环
int v=L1.removeFirst();0{
L1.addLast(temp.removeFirst());
}
}
我在int v=L1.removeFirst();;上不断遇到错误。如果不使用强制转换,我将如何修复此错误。请重试
Integer v = (Integer)L1.removeFirst();
请试一试
Integer v = (Integer)L1.removeFirst();
方法的参数是原始类型,这就是为什么在对其执行get操作时会获得对象类型
Integer v=(Integer)L1.removeFirst();
或者将方法参数类型LinkedList L1
更改为LinkedList L1
但最好的方法是第二种方法,将参数类型更改为“方法”的参数是原始类型,这就是为什么对其执行get操作时会得到对象类型
Integer v=(Integer)L1.removeFirst();
或者将方法参数类型LinkedList L1
更改为LinkedList L1
但最好的方法是第二种方法更改参数类型什么是
removeFirst()的返回类型
?如果参数L1
是一个包含Integer
s的LinkedList
,则将其声明为LinkedList L1
;如果由于对调用代码的负面影响而无法执行此操作,则必须使用(Integer)
cast.和:了解java命名约定。变量/参数名称按大小写。和:使用有意义的名称告诉人类读者发生了什么事。L1没有意义,什么也说不出来。是的,@luk2302,cast不是最优的;但是如果有大量的东西用原始列表
s调用这个东西,该怎么办?re的返回类型是什么moveFirst()
?如果参数L1
是包含整数的链接列表
,则将其声明为链接列表L1
;如果由于对调用代码的负面影响而无法执行此操作,则必须使用(整数)
cast.和:了解java命名约定。变量/参数名称按大小写。和:使用有意义的名称告诉人类读者发生了什么。L1没有意义,什么也说不出来。是的,@luk2302,cast不是最优的;但是如果有大量的东西用原始列表调用这个东西,该怎么办?嗯,它“修复了”编译器错误,基本上忽略了它。这不是一个正确的答案。改为更改L1
的类型。@luk2302实际上你是对的public static void-takaiki32(LinkedList L1,Collection L2){
它“修复了”编译器错误,基本上忽略了它。这不是正确的答案。请改为更改L1
的类型。@luk2302实际上您是对的public static void-takaiki32(LinkedList L1,Collection L2){