我想打印存储在TreeSet中的对象的实例变量。
所以给定一个带有三个实例变量的Object,我想迭代我的TreeSet中的Objects并打印他们的ivars但是:
while ( iter.hasNext() )
{
System.out.println( iter.next().getIvar1 );
System.out.println( iter.next().getIvar2 );
}
获取第一个对象的ivar1和第二个对象的ivar2。 在我的所有搜索中,我发现在将迭代器移动到下一个对象之前,无法打印一个对象的所有ivars:
while ( iter.hasNext() )
{
System.out.println( iter.hasNext().getIvar1() );
System.out.println( iter.getIvar2 );
System.out.println( iter.getIvar3 );
System.out.println( iter.hasNext().getIvar1() );
....
}
有关如何实施的任何想法?
提前致谢! =)
答案 0 :(得分:6)
for (Element element : set) {
System.out.println(element.getIvar1());
System.out.println(element.getIvar2());
}
在内部,它只是一个迭代器 - 但它可以省去手动调用next()
和hasNext()
的麻烦。
答案 1 :(得分:1)
不要继续在循环中调用iter.next()
。只调用一次。每次调用Iterator.next()
时,它都会将迭代器推进到迭代中的下一个元素。
while ( iter.hasNext() )
{
Foo element = iter.next();
System.out.println( element.getIvar1 );
System.out.println( element.getIvar2 );
}