将整数ArrayList中的值与变量Integer进行比较时出错

时间:2013-05-03 20:49:12

标签: java

我试图使用'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

3 个答案:

答案 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))