我试图使用'get'方法从整数数组列表中获取值并将其与整数变量进行比较,但是当我尝试这样做时,编译器会抛出错误。 我收到的代码和错误发布在下面。
Java代码:
public boolean isExistGuess(int guess, ArrayList arraylist) {
boolean found = false;
for (int i=0; i < arraylist.size(); i++) {
if (arraylist.get(i) == guess)
found = true;
}
}
错误讯息:
incompatible operand types Object and Int
答案 0 :(得分:6)
那是因为在你的情况下,ArrayList不是通用的。
使用
ArrayList<Integer>
而不是方法签名
答案 1 :(得分:3)
您正在传递 ArrayList arraylist 作为参数,因为您没有明确指定类型,默认情况下是Object的arraylist。
所以,当你做 arraylist.get(i)时,你会得到一个对象。
尝试传递,Integer的ArrayList作为参数
ArrayList<Integer> arraylist
答案 2 :(得分:1)
如果您没有为列表提供类型,它将变为“原始”类型 - 有效地视为ArrayList<Object>
。
您可以更改方法以使用类型列表(请注意,指定特定列表实现的做法很糟糕 - 只需List
}:
public boolean isExistGuess(int guess, List<Integer> list) {
但是你的整个方法是不必要的,因为列表中有一个contains()
方法,它完全按照你编码的方式执行。像这样使用它:
List<Integer> list = new ArrayList<Integer>();
填充你的欲望,然后再填充:
if (list.contains(guess))