Collections 初級

クリーンな拡張forループでリストを逆順にイテレートする。

✕ Java 8
for (ListIterator<String> it =
        list.listIterator(list.size());
    it.hasPrevious(); ) {
    String element = it.previous();
    System.out.println(element);
}
✓ Java 21+
for (String element : list.reversed()) {
    IO.println(element);
}
このコードに問題がありますか? お知らせください。
📖

自然な構文

冗長なListIteratorの代わりに拡張forループを使用します。

コピーなし

reversed()はビューを返すため、パフォーマンスオーバーヘッドはありません。

🧩

一貫したAPI

List、Deque、SortedSetに統一して動作します。

旧来のアプローチ
手動ListIterator
モダンなアプローチ
reversed()
JDKバージョン
21
難易度
初級
リストの逆順イテレーション
利用可能

JDK 21 LTS(2023年9月)以降、広く利用可能

SequencedCollectionのreversed()メソッドはリストの逆順ビューを返します。このビューは元のリストに裏打ちされているため、コピーは発生しません。拡張forループ構文により、逆順イテレーションが順方向と同じくらい読みやすくなります。

共有 𝕏 🦋 in