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());
}
}
} -
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり
-
tkinterとTkinterの違い
ローカルコンピュータにtkinterをインストールするために、OSアーキテクチャに基づいていくつかのコマンドを使用します。 tkinterをインポートする方法は2つあります Pythonバージョンに基づくウィンドウベースのマシンのライブラリ。以前は、Pythonの下位バージョンでは、通常、次のコマンドを使用してtkinterライブラリをインポートしていました- from Tkinter import * ただし、Python 3以降の場合、通常、次のコマンドを使用して環境にTkinterライブラリをインポートします- from tkinter import * Tkinterの唯一の違