Java Hashtable クラスは、キーを値にマップするハッシュテーブルを実装します。 Dictionaryクラスを継承し、Mapインターフェースを実装します。
留意すべき点
- ハッシュテーブルはリストの配列です。各リストはバケットと呼ばれます。バケットの位置は、hashcode() メソッドを呼び出すことで特定されます。ハッシュテーブルにはキーに基づく値が含まれます。
- Java Hashtable クラスには固有の要素が含まれています。
- Java Hashtable クラスでは、null キーまたは値は許可されません。
- Java Hashtable クラスが同期されます。
- Hashtable クラスの初期デフォルト容量は 11 ですが、loadFactor は 0.75 です。
ハッシュテーブルクラス宣言
java.util.Hashtable クラスの宣言を見てみましょう。
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
ハッシュテーブルクラスのパラメータ
java.util.Hashtable クラスのパラメータを見てみましょう。
Java Hashtable クラスのコンストラクター
コンストラクタ | 説明 |
---|---|
ハッシュ表() | 初期デフォルトの容量と負荷係数を持つ空のハッシュテーブルを作成します。 |
ハッシュテーブル(int 容量) | 整数パラメータを受け入れ、指定された初期容量を含むハッシュ テーブルを作成します。 |
ハッシュテーブル(int 容量、float ロードファクター) | 指定された初期容量とloadFactorを持つハッシュテーブルを作成するために使用されます。 |
ハッシュテーブル(マップ) | 指定された Map と同じマッピングを持つ新しいハッシュ テーブルを作成します。 |
Java Hashtable クラスのメソッド
方法 | 説明 |
---|---|
ボイドクリア() | ハッシュテーブルをリセットするために使用されます。 |
オブジェクトクローン() | ハッシュテーブルの浅いコピーを返します。 |
V compute(K キー、BiFunction remappingFunction) | これは、指定されたキーとその現在のマップ値 (または、現在のマッピングがない場合は null) のマッピングを計算するために使用されます。 |
V computeIfAbsent(K キー、関数マッピング関数) | これは、指定されたキーがまだ値に関連付けられていない (または null にマップされている) 場合に、指定されたマッピング関数を使用してその値を計算するために使用され、null でない限りそのキーをこのマップに入力します。 |
V computeIfPresent(K キー、BiFunction remappingFunction) | これは、指定されたキーの値が存在し、null でない場合に、キーとその現在マップされた値を指定して新しいマッピングを計算するために使用されます。 |
列挙要素() | ハッシュ テーブル内の値の列挙を返します。 |
セット | マップに含まれるマッピングのセット ビューを返します。 |
ブール値と等しい(オブジェクト o) | 指定されたオブジェクトとマップを比較するために使用されます。 |
void forEach(BiConsumer アクション) | すべてのエントリが処理されるか、アクションが例外をスローするまで、マップ内の各エントリに対して指定されたアクションを実行します。 |
V getOrDefault(オブジェクト キー, V defaultValue) | 指定されたキーがマップされている値を返します。マップにキーのマッピングが含まれていない場合は、defaultValue を返します。 |
int ハッシュコード() | マップのハッシュ コード値を返します。 |
列挙キー() | ハッシュテーブル内のキーの列挙を返します。 |
keySet() を設定します | マップに含まれるキーの Set ビューを返します。 |
Vマージ(Kキー、V値、BiFunctionリマッピング関数) | 指定されたキーがまだ値に関連付けられていない場合、または null に関連付けられている場合は、そのキーを指定された null 以外の値に関連付けます。 |
V put(Kキー、V値) | 指定されたキーを持つ指定された値をハッシュ テーブルに挿入します。 |
void putAll(Map t)) | これは、すべてのキーと値のペアをマップからハッシュテーブルにコピーするために使用されます。 |
V putIfAbsent(K キー, V 値) | 指定されたキーがまだ値に関連付けられていない (または null にマップされている) 場合は、そのキーを指定された値に関連付けて null を返し、それ以外の場合は現在の値を返します。 |
ブール値の削除(オブジェクトのキー、オブジェクトの値) | 指定された値と、関連付けられた指定されたキーがハッシュテーブルから削除されます。 |
V replace(Kキー、V値) | 指定されたキーの指定された値を置き換えます。 |
boolean replace(K キー、V oldValue、V newValue) | 指定されたキーの古い値を新しい値に置き換えます。 |
void replaceAll(BiFunction 関数) | すべてのエントリが処理されるか、関数が例外をスローするまで、各エントリの値をそのエントリに対して指定された関数を呼び出した結果に置き換えます。 |
文字列 toString() | Hashtable オブジェクトの文字列表現を返します。 |
コレクションの値() | マップに含まれる値のコレクション ビューを返します。 |
ブール値には (オブジェクト値) が含まれます | このメソッドは、値と等しい値がハッシュ テーブル内に存在する場合は true を返し、それ以外の場合は false を返します。 |
ブール値 containsValue(オブジェクト値) | このメソッドは、値と等しい値がハッシュ テーブル内に存在する場合は true を返し、それ以外の場合は false を返します。 |
ブール値 containsKey(オブジェクト キー) | このメソッドは、キーと等しいキーがハッシュ テーブル内に存在する場合は true を返し、それ以外の場合は false を返します。 |
ブール値 isEmpty() | このメソッドは、ハッシュ テーブルが空の場合は true を返します。少なくとも 1 つのキーが含まれている場合は false を返します。 |
保護された void rehash() | これは、ハッシュ テーブルのサイズを増やし、そのすべてのキーを再ハッシュするために使用されます。 |
V get(オブジェクトキー) | このメソッドは、キーに関連付けられた値を含むオブジェクトを返します。 |
V 削除(オブジェクトキー) | キーとその値を削除するために使用されます。このメソッドは、キーに関連付けられた値を返します。 |
int サイズ() | このメソッドは、ハッシュ テーブル内のエントリの数を返します。 |
Java ハッシュテーブルの例
import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }今すぐテストしてください
出力:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Java ハッシュテーブルの例:remove()
import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } }
出力:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Java ハッシュテーブルの例: getOrDefault()
import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } }
出力:
Vijay Not Found
Java ハッシュテーブルの例: putIfAbsent()
import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } }
出力:
Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit}
Java ハッシュテーブルの例: 本
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
出力:
3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8