2012-05-13 55 views
4

我想打印存儲在我的TreeSet中的對象的實例變量。如何從TreeSet打印對象

因此,考慮有三個實例變量的對象,我想遍歷在我的TreeSet中的對象和打印他們的ivars但:

while (iter.hasNext()) 
{ 
    System.out.println(iter.next().getIvar1); 
    System.out.println(iter.next().getIvar2); 
} 

得到我的第一個對象的ivar1和第二的ivar2目的。 而且用我所有的搜索,我發現沒有打印一個對象的所有實例變量的方式迭代器移動到喜歡的下一個對象之前:

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

上如何實現任何想法?

在此先感謝! =)

回答

5

使用enhanced for loop

for (Element element : set) { 
    System.out.println(element.getIvar1()); 
    System.out.println(element.getIvar2()); 
} 

在內部,它只是一個迭代器 - 但它可以節省您的手動調用next()hasNext()的麻煩。

1

不要在迴路中繼續呼叫iter.next()。只調用一次。每次調用Iterator.next()時,它都會將迭代器推進到迭代中的下一個元素。

while (iter.hasNext()) 
{ 
    Foo element = iter.next(); 
    System.out.println(element.getIvar1); 
    System.out.println(element.getIvar2); 
}