2016-04-20 6 views
0

私は、リンクされたリストの基本的な動作をforeach構文を使って反復するときに理解しようとしています。リンクされたリストにA、C、B、Dがこの順序で追加されているとしましょう。その順序はA> C-B-Dでなければなりません。 foreachを使用してLinkedListを繰り返し処理すると(それが間違っているとIteratorが暗黙的に使用されます)、契約はアイテムが順番に取得されることを保証しますか? APIは実際にこれを言うようには見えませんが、あまりにも明白なことは言えますか?私はJava 7 APIを見ています:https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html APIは、イテレータがフェイル・ファーストであると述べています。詳細については触れていますが、リンク・リストの順序を保証するイテレータについては何もわかりません。ネイティブforeach構文を使用してJava LinkedListを反復処理するとどうなりますか?

+2

まあ、私は 'List' javadoc:' An ordered collection ... 'から派生させることができると思います。次に、 'LinkedList'は' Listの二重リンクリスト実装... 'と述べています。したがって、 'List'が順序付けされている場合、' LinkedList'も順序付けされます。それを 'Set'と' LinkedHashSet'と比較すると、あなたは 'LinkedHashSet'の明確な言及をします:' ...このリンクリストは、要素がセット(挿入注文)に挿入された順序である反復順序を定義します。これは 'Set'インタフェースとは異なります – ThanksForAllTheFish

答えて

関連する問題