2012-05-13 6 views
4

TreeSetに格納されているオブジェクトのインスタンス変数を出力したいとします。TreeSetからオブジェクトを印刷する方法

だから3つのインスタンス変数を持つオブジェクトを指定して、私は私のTreeSetの中のオブジェクトを反復し、そのアイバーズを印刷したいが:

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

は私の最初のオブジェクトのivar1と第二のivar2を取得しますオブジェクト。 そして、すべての私の検索で私のような次のオブジェクトに反復子を移動する前に、1つのオブジェクトのすべてのアイバーズを印刷のない方法を見つけない:それを実装する方法の

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); 
} 
関連する問題