迭代器为整数

时间:2016-02-13 16:02:49

标签: java compiler-errors iterator

据我所知,Iterator是一个对象,它在声明过程中定义了类型,但也有另外两种方法:next()Iterator<Integer> iterator。 因此,除了这两种方法之外,如果我编写iterator.intValue(),那么迭代器应该像Integer对象一样运行。 但是,当我尝试使用Exception in thread "main" java.lang.Error: Unresolved compilation problems: The method intValue() is undefined for the type Class<capture#1-of ? extends Iterator> Syntax error, insert "}" to complete Block 时,我收到错误。

    Iterator<Integer> iterator = content.iterator(); //content is a HashSet<Integer> object
    System.out.println(iterator.intValue());

    while(iterator.hasNext())
    {
        iterator.next();
        System.out.println(iterator);

    }

以下是完整代码:

GetProcessesByName

4 个答案:

答案 0 :(得分:3)

你需要从迭代器中获取Integer,然后打印整数:

Integer i = iterator.next();
System.out.println(i);

Iterator是整数的迭代器,它的行为不像整数。下一个方法将返回一个Integer。

答案 1 :(得分:2)

不,Iterator<T>不像T - next()方法,但返回T值。即:

while(iterator.hasNext()) {
    Integer myInteger = iterator.next();
    int myInt = myInteger.intValue();
}

答案 2 :(得分:0)

Iterator不是Integer,但是如果你调用next()它可能会给你一个而不是直接调用Iterator通常更好地使用2006年添加到Java 5.0的for-each循环。< / p>

for(int n : content) //content is a HashSet<Integer> object
    System.out.println(n);

从Java 8开始,您可以使用forEach方法。

content.forEach(System.out::println);

答案 3 :(得分:0)

更准确地说,iterator.next()返回一个对象类型变量。因此,typecasting是必需的

Integer myInteger = (Integer) iterator.next();
int i = myInteger.intValue();