Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでのHashTableとConcurrentHashMapの違い


並行ハッシュマップは、jdk1.5で導入されたクラスです。同時ハッシュマップは、マップの追加または更新中にフラグメントと呼ばれるバケットレベルでのみロックを適用します。したがって、同時ハッシュマップを使用すると、マップへの読み取り操作と書き込み操作を同時に実行できます。

HashTableは、Jdk1.1で導入されたスレッドセーフなレガシークラスです。これは、Mapインターフェースの基本実装です。 nullキーと値は許可されません。本質的に同期されているため、2つの異なるスレッドが同時にアクセスすることはできません。ハッシュテーブルは順序を維持しません。

Sr。いいえ。
キー
HashTable
ConcurrentHashMap

1

基本

HashTableは、Jdk1.1で導入されたスレッドセーフなレガシークラスです。

ConcurrentHashmapは、jdk1.5で導入されたクラスです

2

ロック

コレクション全体にロックを適用します

ConcurrentHashMapは、マップの追加または更新中にフラグメントと呼ばれるバケットレベルでのみロックを適用します

3

パフォーマンス

ConcurrentHashMapより遅い

HashTableよりも優れています

4.

ヌル

nullキーと値は許可されません

nullキーと値を許可します

ハッシュテーブルの例

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
public class HashtableExample {
   public static void main(String[] args) {
      // create Hashtable
      Hashtable map = new Hashtable();
      map.put("HCL", "100");
      map.put("DELL", "200");
      map.put("IBM", "300");
      // print the map
      for (Map.Entry m : map.entrySet()) {
         System.out.println(m.getKey() + " " + m.getValue());
      }
   }
}

ConcurrentHashMapの例

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapExample {
   public static void main(String[] args) {
      // ConcurrentHashMap
      Map myMap = new ConcurrentHashMap();
      myMap.put("HCL", "1");
      myMap.put("DELL", "1");
      // print the map
      for (Map.Entry m : map.entrySet()) {
         System.out.println(m.getKey() + " " + m.getValue());
      }
   }
}

  1. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり

  2. tkinterとTkinterの違い

    ローカルコンピュータにtkinterをインストールするために、OSアーキテクチャに基づいていくつかのコマンドを使用します。 tkinterをインポートする方法は2つあります Pythonバージョンに基づくウィンドウベースのマシンのライブラリ。以前は、Pythonの下位バージョンでは、通常、次のコマンドを使用してtkinterライブラリをインポートしていました- from Tkinter import * ただし、Python 3以降の場合、通常、次のコマンドを使用して環境にTkinterライブラリをインポートします- from tkinter import * Tkinterの唯一の違