注目記事

【Javaコード入門】コレクションフレームワーク_⑦LinkedList

リンク構造のリスト – LinkedListクラス

LinkedListは、要素同士を前後双方向のリンクで参照するリンクリストを表します。その性質上、要素の挿入/削除はリンクの付け替えで済むため、ArrayListに較べても高速です。反面、インデックス値によるランダムなアクセスは苦手であるという性質を持ちます(*)。このような理由から、挿入/削除操作が多い状況ではLinkedListを、それ以外の場合はArrayListを使う、という使い分けになるでしょう。
LinkedListクラスで利用できるメソッドは、ArrayListと同じですので、そちらも合わせて参照してください。以下は、LinkedListで要素をセットし、その内容を順に読み込む例です。

※その性質上、挿入/削除に先立って、特定の要素を検索するような操作が加わる場合、やはりパフォーマンスが低下する原因になるので要注意です。

CollLink.java

  1. package com.example.mynavi.collection;
  2.  
  3. import java.util.LinkedList;
  4. import java.util.List;
  5.  
  6. public class CollLink {
  7.   public static void main(String args) {
  8.     var list = new LinkedList<String>() {
  9.       {
  10.         add("Windows");
  11.         add("Linux");
  12.         add("macOS");
  13.       }
  14.     };
  15.  
  16.     for (String str : list) {
  17.       System.out.println(str);  // 結果:Windows、Linux、macOS
  18.     }
  19.  
  20.     System.out.println("2番目の要素は" + list.get(1));
  21.     // 結果:2番目の要素はLinux
  22.     System.out.println(list.contains("Linux")); // 結果:true
  23.  
  24.     if (!list.isEmpty()) {
  25.       System.out.println("要素数は" + list.size() + "個です。");
  26.     // 結果:要素数は3個です。
  27.     }
  28.  
  29.     list.remove(0);
  30.     System.out.println(list);   // 結果:[Linux, macOS]
  31.  
  32.     list.clear();
  33.     System.out.println(list);   // 結果:
  34.   }
  35. }
コレクションフレームワーク_目次
コレクションフレームワーク
コレクションを初期化する
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万部を超える。