Java LinkedListの使い方のサンプル

JavaのLinkedListクラスの使い方のサンプルです。

目次

LinkedListクラス

  • 要素同士をリンクする構造です。
  • 要素の重複は可能です。
  • リストの途中への挿入や削除はリンクを付け替えるだけのため速いです。
  • 読み込みは先頭または末尾から検索するため、リストの先頭または末尾へは速く中央は遅いです。
  • LinkedListクラスはListインターフェースを実装しています。
  • LinkedListクラスをインスタンス化する時、LinkedListクラス独自のメソッドを使用しない限り、通常Listインターフェイス型の変数に代入します。
  • LinkedListクラスは、Listインターフェースを実装しているので、Listインターフェイスにあるメソッドを使用できます。
  • 以下はJava8 API仕様のLinkedListクラスのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/LinkedList.html
  • 以下はJava8 API仕様のListインターフェースのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/List.html

要素を追加する (addメソッド)

8行目は、LinkedListクラスをインスタンス化してListインターフェイス型の変数に代入しています。
→ジェネリクス<>でオブジェクトの中身はStringであると宣言しています。
10-12行目は、addメソッドで要素を追加しています。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		
		List<String> colors = new LinkedList<>();
		
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		for (String a : colors) {
			System.out.println(a);//赤 黄 青
		}
	}
 }

要素を取得する (getメソッド)

12行目は、getメソッドで要素を取得しています。
最初の要素の位置は0です。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		System.out.println(colors.get(1)); //黄
	}
 }

要素を置き換える (setメソッド)

12行目は、setメソッドで要素を置換えています。
最初の要素の位置は0です。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		colors.set(1, "紫");
		System.out.println(colors); //[赤, 紫, 青]
	}
 }

要素数を取得する (sizeメソッド)

12行目は、sizeメソッドで要素数を取得しています。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		System.out.println(colors.size()); //3
	}
 }

要素の位置を取得する (indexOfメソッド)

12行目は、indexOfメソッドで指定の要素の位置を取得しています。
最初の要素の位置は0です。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		System.out.println(colors.indexOf("黄")); //1
	}
 }

指定の要素があるかを返す (containsメソッド)

12行目は、containsメソッドで指定の要素があるかを取得しています。
ある場合trueです。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		System.out.println(colors.contains("青")); //true
	}
 }

中身が空かを返す (isEmptyメソッド)

12行目は、isEmptyメソッドで中身が空か取得しています。
空の場合trueです。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		System.out.println(colors.isEmpty()); //false
	}
 }

要素を削除する (removeメソッド)

12行目は、removeメソッドで指定の要素を削除しています。
最初の要素の位置は0です。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		colors.remove(0);
		System.out.println(colors); //[黄, 青]
	}
 }

すべての要素を削除する (clearメソッド)

12行目は、clearメソッドですべての要素を削除しています。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		
		colors.clear();
		System.out.println(colors); //[]
	}
 }

メソッドの引数をリストの変数にするサンプル

メソッドの引数をリストの変数にするサンプルです。
11行目のメソッドを呼ぶ側の引数は、リストの変数(colors)です。
13行目のメソッドの引数には、リストの型と変数(List<String> c1)があります。呼ぶ側の引数の変数名(colors)と呼ばれる側の引数の変数名(c1)は異なっていても使用できます。

package test1;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		List<String> colors = new LinkedList<>();
		colors.add("赤");
		colors.add("黄");

		System.out.println(showResult(colors)); //赤黄
	}
	private static String showResult(List<String> c1) {
		String q = "";
		for (String a : c1) {
			q = q + a;
		}
		return q;
	}
}

関連の記事

Java ArrayListの使い方のサンプル
Java HashMapの使い方のサンプル
Java LinkedHashMapの使い方のサンプル
Java TreeMapの使い方のサンプル
Java HashSetの使い方のサンプル
Java 配列からリストを作成するサンプル(Arraysクラス)
Java 配列からリストを作成するサンプル(Collectionsクラス)
Java リストから配列を作成するサンプル(ArrayList)




△上に戻る