如何从TreeSet中打印对象

时间:2012-05-13 14:56:53

标签: java iterator treeset

我想打印存储在T​​reeSet中的对象的实例变量。

所以给定一个带有三个实例变量的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() );
  ....
}

有关如何实施的任何想法?

提前致谢! =)

2 个答案:

答案 0 :(得分:6)

使用enhanced for loop

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 );
}