Java LinkedHashMapの使い方のサンプル

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

目次

LinkedHashMapクラス

  • 一意の「キー」と「値」の組み合わせを要素として持ちます。
  • キーの重複は許されません。
  • キーには文字列を使うことができます。
  • マップに追加した順序を保持します。(←HashMap、TreeMapと違う点)
  • LinkedHashMapクラスはMapインターフェースを実装しています。
  • LinkedHashMapクラスをインスタンス化する時、LinkedHashMapクラス独自のメソッドを使用しない限り、通常Mapインターフェイス型の変数に代入します。
  • LinkedHashMapクラスは、Mapインターフェースを実装しているので、Mapインターフェイスにあるメソッドを使用できます。
  • 以下はJava8 API仕様のLinkedHashMapクラスのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/LinkedHashMap.html
  • 以下はJava8 API仕様のMapインターフェースのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/Map.html

 キーと値を追加する(putメソッド)

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {

		Map<String,String> colors = new LinkedHashMap<>();

		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");
		
		for (Map.Entry<String, String> a : colors.entrySet()) {
			System.out.println(a);//a=赤 b=黄 c=青
		}
	}
 }

キーを指定して値を取得する(getメソッド)

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");

		System.out.println(colors.get("a")); //赤
	}
 }

キーと値の集合を取得する(entrySetメソッド)

12行目は、entrySetメソッドでキーと値の集合を取得しています。

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");
		
		System.out.println(colors.entrySet());//[a=赤, b=黄, c=青]
	}
 }

キーの集合を取得する(keySetメソッド)

12行目は、keySetメソッドでキーの集合を取得しています。

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");
		
		System.out.println(colors.keySet());//[a, b, c]
	}
 }

値の集合を取得する(valuesメソッド)

12行目は、valuesメソッドで値の集合を取得しています。

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");
		
		System.out.println(colors.values());//[赤, 黄, 青]
	}
 }

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

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");

		System.out.println(colors.size());//3
	}
 }

指定のキーがあるかを返す(containsKeyメソッド)

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");
		
		System.out.println(colors.containsKey("b"));//true
	}
 }

指定の値があるかを返す(containsValueメソッド)

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");
		
		System.out.println(colors.containsValue("黄"));//true
	}
 }

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

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");

		System.out.println(colors.isEmpty());//false
	}
 }

キーを指定して削除する(removeメソッド)

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");

		colors.remove("a");
		System.out.println(colors);//{b=黄, c=青}
	}
 }

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

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String,String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");
		colors.put("c", "青");

		colors.clear();
		System.out.println(colors);//{}
	}
 }

メソッドの引数をマップの変数にする+拡張for文のサンプル

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

package test1;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test1 {
	public static void main(String[] args) {
		Map<String, String> colors = new LinkedHashMap<>();
		colors.put("a", "赤");
		colors.put("b", "黄");

		System.out.println(showResult(colors)); // a:赤, b:黄, 
	}
	private static String showResult(Map<String, String> c1) {
		String q = "";
		for (Map.Entry<String, String> a : c1.entrySet()) {
			q = q + a.getKey() + " : " + a.getValue() + ",";
		}
		return q;
	}
}

関連の記事

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




△上に戻る