据我所知,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
答案 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();