2013-05-03 27 views
2

我想从整数数组列表中使用'get'方法获取值并将其与一个整数变量进行比较,但是当我尝试这样做时,编译器会抛出一个错误。 我收到的代码和错误发布如下。当从一个整数ArrayList到一个变量的值比较时出现错误整数

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

你传入的ArrayList ArrayList的作为参数,因为你还没有明确指定类型,其默认对象的数组列表。

所以,当你在做arraylist.get(i),你会得到一个对象。

尝试传球,整数的ArrayList中的paremeter

ArrayList<Integer> arraylist 
6

这是因为ArrayList的是不是一个普通的一个,你的情况。

使用

ArrayList<Integer> 

中,而不是方法签名

1

当你不为你的列表中选择类型,就变成了“原始”型 - 有效地视为ArrayList<Object>

你可以改变你使用一个类型的列表方法(注意,这是不良的做法,指定特定列表实现 - 只要List是最好的):

public boolean isExistGuess(int guess, List<Integer> list) { 

但你的整个方法是不必要的,因为列表有一个方法,它完全符合你所编码的内容。使用它像这样:

List<Integer> list = new ArrayList<Integer>(); 

填充你的欲望,再后来:

if (list.contains(guess))