5

TreeSetに保存したオブジェクトのインスタンス変数を出力したいと思います。

したがって、3つのインスタンス変数を持つオブジェクトが与えられた場合、TreeSet内のオブジェクトを反復処理し、それらのivarを出力したいと思いますが、次のようになります。

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

最初のオブジェクトのivar1と2番目のオブジェクトのivar2を取得します。そして、すべての検索で、イテレータを次のオブジェクトに移動する前に、1つのオブジェクトのすべてのivarを出力する方法が見つかりませんでした。

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

それを実装する方法について何かアイデアはありますか?

前もって感謝します!=)

4

2 に答える 2

6

拡張されたforループを使用します:

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

next()内部的には、これは単なるイテレータですが、手動でとを呼び出す手間を省くことができますhasNext()

于 2012-05-13T15:01:47.970 に答える
1

iter.next()ループ内で呼び出し続けないでください。一度だけ呼び出します。を呼び出すたびIterator.next()に、イテレータが反復の次の要素に進みます。

while ( iter.hasNext() )
{
    Foo element = iter.next();
  System.out.println( element.getIvar1 );
  System.out.println( element.getIvar2 );
}
于 2012-05-13T14:58:03.780 に答える