リンク構造のリスト – LinkedListクラス
LinkedListは、要素同士を前後双方向のリンクで参照するリンクリストを表します。その性質上、要素の挿入/削除はリンクの付け替えで済むため、ArrayListに較べても高速です。反面、インデックス値によるランダムなアクセスは苦手であるという性質を持ちます(*)。このような理由から、挿入/削除操作が多い状況ではLinkedListを、それ以外の場合はArrayListを使う、という使い分けになるでしょう。
LinkedListクラスで利用できるメソッドは、ArrayListと同じですので、そちらも合わせて参照してください。以下は、LinkedListで要素をセットし、その内容を順に読み込む例です。
※その性質上、挿入/削除に先立って、特定の要素を検索するような操作が加わる場合、やはりパフォーマンスが低下する原因になるので要注意です。
CollLink.java
- package com.example.mynavi.collection;
- import java.util.LinkedList;
- import java.util.List;
- public class CollLink {
- public static void main(String args) {
- var list = new LinkedList<String>() {
- {
- add("Windows");
- add("Linux");
- add("macOS");
- }
- };
- for (String str : list) {
- System.out.println(str); // 結果:Windows、Linux、macOS
- }
- System.out.println("2番目の要素は" + list.get(1));
- // 結果:2番目の要素はLinux
- System.out.println(list.contains("Linux")); // 結果:true
- if (!list.isEmpty()) {
- System.out.println("要素数は" + list.size() + "個です。");
- // 結果:要素数は3個です。
- }
- list.remove(0);
- System.out.println(list); // 結果:[Linux, macOS]
- list.clear();
- System.out.println(list); // 結果:
- }
- }
- コレクションフレームワーク_目次
- コレクションフレームワーク
- コレクションを初期化する
- synchronizedList/synchronizedMap/synchronizedSetメソッド
- ArrayListクラス
- asListメソッド
- toArrayメソッド
- LinkedList
- HashMap
- TreeMap
- NavigableMap
- HashSet
- ArrayDeque
監修
山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。