Java-linkedhashmap-class

提供:Dev Guides
移動先:案内検索

Java-LinkedHashMapクラス

このクラスは、HashMapを拡張し、マップ内のエントリのリンクリストを、挿入された順序で維持します。 これにより、マップ上での挿入順序の反復が可能になります。 つまり、LinkedHashMapを反復する場合、要素は挿入された順序で返されます。

また、最後にアクセスされた順序で要素を返すLinkedHashMapを作成することもできます。

以下は、LinkedHashMapクラスでサポートされるコンストラクターのリストです。

Sr.No. Constructor & Description
1

LinkedHashMap( )

このコンストラクターは、デフォルトのLinkedHashMapを構築します。

2

LinkedHashMap(Map m)

このコンストラクタは、指定されたMapクラス m の要素でLinkedHashMapを初期化します。

3

LinkedHashMap(int capacity)

このコンストラクターは、指定された容量でLinkedHashMapを初期化します。

4

LinkedHashMap(int capacity, float fillRatio)

このコンストラクターは、容量と充填率の両方を初期化します。 容量と充填率の意味は、HashMapの場合と同じです。

5

LinkedHashMap(int capacity, float fillRatio, boolean Order)

このコンストラクターを使用すると、要素をリンク順で保存するか、挿入順で保存するか、最後のアクセス順で保存するかを指定できます。 Orderがtrueの場合、アクセス順序が使用されます。 Orderがfalseの場合、挿入順序が使用されます。

親クラスから継承されたメソッドとは別に、LinkedHashMapは次のメソッドを定義します-

Sr.No. Method & Description
1

void clear()

このマップからすべてのマッピングを削除します。

2

boolean containsKey(Object key)

このマップが1つ以上のキーを指定された値にマップする場合はtrueを返します。

3

Object get(Object key)

このマップが指定されたキーをマップする値を返します。

4

protected boolean removeEldestEntry(Map.Entry eldest)

このマップが最も古いエントリを削除する必要がある場合はtrueを返します。

次のプログラムは、このコレクションでサポートされているメソッドのいくつかを示しています-

import java.util.*;
public class LinkedHashMapDemo {

   public static void main(String args[]) {
     //Create a hash map
      LinkedHashMap lhm = new LinkedHashMap();

     //Put elements to the map
      lhm.put("Zara", new Double(3434.34));
      lhm.put("Mahnaz", new Double(123.22));
      lhm.put("Ayan", new Double(1378.00));
      lhm.put("Daisy", new Double(99.22));
      lhm.put("Qadir", new Double(-19.08));

     //Get a set of the entries
      Set set = lhm.entrySet();

     //Get an iterator
      Iterator i = set.iterator();

     //Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();

     //Deposit 1000 into Zara's account
      double balance = ((Double)lhm.get("Zara")).doubleValue();
      lhm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + lhm.get("Zara"));
   }
}

これは、次の結果を生成します-

出力

Zara: 3434.34
Mahnaz: 123.22
Ayan: 1378.0
Daisy: 99.22
Qadir: -19.08

Zara's new balance: 4434.34