找不到符号方法Iterator()

时间:2015-07-14 09:02:55

标签: java collections

大家好我已经开始在java中学习集合并尝试编写一个简单的程序但我得到2个错误请看看并帮助我。

import java.util.Iterator;
import java.util.*;
    class ArrayListDemo1{
    public static void main(String... s){
    ArrayList<Integer> al = new ArrayList<Integer>();
 // ArrayList al = new ArrayList();
    int x[] = {1, -1, 2, -2, 3, -3, 4, -4};
    for(int i=0; i<x.length;i++){
        al.add(x[i]);
    }
    System.out.println(al);
//  Iterator<Integer> i = al.Iterator();
    Iterator i = al.Iterator();
    while(i.hasNext()){
        Integer z = (Integer)i.next();
//      Integer z = i.next();
        if(z.intValue < 0)  
        i.remove(); 
    }   
    System.out.println(al);
}
}

5 个答案:

答案 0 :(得分:4)

 1. Iterator i = al.iterator();//here method is case sensitive
 2. intValue() not intValue, is a method.

答案 1 :(得分:3)

Java区分大小写,方法通常以小写字母开头。它应该是al.iterator();

除此之外,intValue是一种方法,因此z.intValue应为z.intValue()

答案 2 :(得分:2)

第一次错误

方法通常遵循camelcase并且区分大小写。

应为al.iterator()

请查看here

第二次错误

intValue()是一项功能,请参阅this

if(z.intValue < 0)更改为if(z.intValue() < 0)

运行后,输出

[1, -1, 2, -2, 3, -3, 4, -4]
[1, 2, 3, 4]

经过测试here

答案 3 :(得分:0)

你写 intValue 。它是false.it应该是 intValue()。

答案 4 :(得分:0)

您有2个编译错误:

Iterator i = al.Iterator();
java方法名称中的

以小写字符开头,Iterator也是原始类型,你应该给它一个泛型类型:

Iterator<Integer> i = al.iterator();

你的第二个问题是:

z.intValue

Integer没有公共字段intValue,但返回所需值的方法intValue():

z.intValue()

作为提示:我不知道你为什么在这里使用Iterator,但你也可以使用for-each循环来删除列表项:

for ( Integer integer : al )
{
    if ( integer.intValue() < 0 )
        al.remove( integer );
}