この投稿では、実際にリストを逆にすることなく、Javaでリストを逆の順序で繰り返すさまざまな方法について説明します。

1.使用する ListIterator

The List インターフェイスは、と呼ばれる特別なイテレータを提供します ListIterator、双方向アクセスを可能にします。私たちは List.listIterator(index) 取得する方法 ListIterator リスト内の指定された位置から始まるリスト要素の上。最後の要素から開始する必要があるため、開始インデックスはリストのサイズと等しくなります。

ダウンロード  コードを実行する

2.ApacheCommonCollectionsを使用する

ApacheCommonは ReverseListIterator これを使用して、リストを逆の順序で繰り返すことができます。

への最初の呼び出し next() リストの最後の要素を返します。次の呼び出しは next() 前の要素を返します。 hasNext() メソッドは、別の要素があるかどうかをチェックします。

コードをダウンロード

3.forループの使用

私達はことを知っています List は順序付けられたコレクションであるため、forループを使用して、リスト内のインデックス(位置)で要素にアクセスできます。ここでは、拡張されたforループを使用して、最初の最後から反復することはできないことに注意してください List それは使用するので Iterator 舞台裏、そして Iterator 双方向ではありません。

ダウンロード  コードを実行する

4. Java 8 –ストリームの使用

Java 8では、次のことができます。

  1. を使用してストリームを取得 List.stream().
  2. このストリームの要素を LinkedList を使用して Stream.collect().
  3. 内の要素に対してイテレータを取得します LinkedList を使用して逆の順序で LinkedList.descendingIterator() 方法。
  4. を使用してリストの要素に対して印刷操作を実行します Iterator.forEachRemaining() すべての要素が処理されるまで。メソッドリファレンスを提供することもできます System.out::println またはラムダ式を渡します S -> System.out.println(S)Iterator.forEachRemaining().

次のプログラムはそれを示しています。

ダウンロード  コードを実行する

 
以下に示すように、逆の順序で要素を収集するコレクターを作成することもできます。

ダウンロード  コードを実行する

これで、Javaでリストを逆の順序で繰り返すことができます。

 
関連記事:

Javaでリストを反復処理する