工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java LinkedHashMap

Java LinkedHashMap

このチュートリアルでは、例を使用して Java LinkedHashMap クラスとその操作について学習します。

LinkedHashMap Java コレクション フレームワークのクラスは、Map インターフェイスのハッシュ テーブルとリンク リストの実装を提供します。

LinkedHashMap インターフェイスは HashMap クラスを拡張して、そのエントリをハッシュ テーブルに格納します。エントリを順序付けるために、すべてのエントリ間で二重にリンクされたリストを内部的に維持します。


LinkedHashMap の作成

リンクされたハッシュマップを作成するには、 java.util.LinkedHashMap をインポートする必要があります 最初にパッケージ。パッケージをインポートしたら、リンクされたハッシュマップを Java で作成する方法を次に示します。

// LinkedHashMap with initial capacity 8 and load factor 0.6
LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);

上記のコードでは、numbers という名前のリンクされたハッシュマップを作成しました。 .

ここで、

new LinkedHashMap<>(8, 0.6) の部分に注意してください .ここで、最初のパラメータは容量です 2 番目のパラメータは loadFactor です .

デフォルトの容量と負荷率

容量と負荷係数を定義せずに、リンクされたハッシュマップを作成することができます。たとえば、

//LinkedHashMap with default capacity and load factor
LinkedHashMap<Key, Value> numbers1 = new LinkedHashMap<>();

デフォルトでは、

注意 :LinkedHashMap クラスでは、そのエントリの順序を定義することもできます。例えば

// LinkedHashMap with specified order
LinkedHashMap<Key, Value> numbers2 = new LinkedHashMap<>(capacity, loadFactor, accessOrder);

ここで、accessOrder ブール値です。デフォルト値は false です .この場合、リンクされたハッシュマップのエントリは、挿入順序に基づいて並べられます。

ただし、 true の場合 accessOrder として渡されます 、リンクされたハッシュマップのエントリは、最近アクセスされたものから最近アクセスされたものの順に並べられます。


他のマップから LinkedHashMap を作成する

他のマップのすべての要素を含むリンクされたハッシュマップを作成する方法は次のとおりです。

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("LinkedHashMap1: " + evenNumbers);

        // Creating a LinkedHashMap from other LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap2: " + numbers);
    }
}

出力

LinkedHashMap1: {Two=2, Four=4}
LinkedHashMap2: {Two=2, Four=4, Three=3}

LinkedHashMap のメソッド

LinkedHashMap クラスは、マップ上でさまざまな操作を実行できるようにするメソッドを提供します。


要素を LinkedHashMap に挿入

たとえば、


import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();

        // Using put()
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("Original LinkedHashMap: " + evenNumbers);

        // Using putIfAbsent()
        evenNumbers.putIfAbsent("Six", 6);
        System.out.println("Updated LinkedHashMap(): " + evenNumbers);

        //Creating LinkedHashMap of numbers
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);

        // Using putAll()
        numbers.putAll(evenNumbers);
        System.out.println("New LinkedHashMap: " + numbers);
    }
}

出力

Original LinkedHashMap: {Two=2, Four=4}
Updated LinkedHashMap: {Two=2, Four=4, Six=6}
New LinkedHashMap: {One=1, Two=2, Four=4, Six=6}

LinkedHashMap 要素へのアクセス

<強い>1. entrySet()、keySet()、values() の使用

たとえば、

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();

        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

        // Using entrySet()
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet()
        System.out.println("Keys: " + numbers.keySet());

        // Using values()
        System.out.println("Values: " + numbers.values());
    }
}

出力

LinkedHashMap: {One=1, Two=2, Three=3}
Key/Value mappings: [One=1, Two=2, Three=3]
Keys: [One, Two, Three]
Values: [1, 2, 3]

<強い>2. get() と getOrDefault() の使用

たとえば、

import java.util.LinkedHashMap;

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

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

        // Using get()
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault()
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);
    }
}

出力

LinkedHashMap: {One=1, Two=2, Three=3}
Returned Number: 3
Returned Number: 5

LinkedHashMap 要素を削除

たとえば、

import java.util.LinkedHashMap;

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

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

        // remove method with single parameter
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // remove method with two parameters
        boolean result = numbers.remove("Three", 3);
        System.out.println("Is the entry Three removed? " + result);

        System.out.println("Updated LinkedHashMap: " + numbers);
    }
}

出力

LinkedHashMap: {One=1, Two=2, Three=3}
Removed value: 2
Is the entry {Three=3} removed? True
Updated LinkedHashMap: {One=1}

LinkedHashMap のその他の方法

メソッド 説明
clear() マップからすべてのエントリを削除します
containsKey() 指定されたキーがマップに含まれているかどうかを確認し、ブール値を返します
containsValue() マップに指定された値が含まれているかどうかを確認し、ブール値を返します
size() マップのサイズを返します
isEmpty() マップが空かどうかを確認し、ブール値を返します

LinkedHashMap 対。ハッシュマップ

LinkedHashMap の両方 そして HashMap Map を実装します インターフェース。ただし、両者にはいくつかの違いがあります。


Java

  1. Java オペレーター
  2. Java コメント
  3. Java if...else ステートメント
  4. Java for-each ループ
  5. Java 文字列
  6. Java インターフェイス
  7. Java匿名クラス
  8. Java try-with-resources
  9. Java アノテーション
  10. Java アサーション
  11. Java ベクトル