ホームページ  >  記事  >  Java  >  Javaのハッシュテーブル

Javaのハッシュテーブル

WBOY
WBOYオリジナル
2024-08-30 15:47:42991ブラウズ

Java では、ハッシュテーブルは、すべてのキーを特定の値にマップするキーと値のペアを格納するために使用されます。 HashMap とは異なり、同期されます。さらに、Hashtable では null 値や null キーが許可されず、固有の要素も含まれます。すでに述べたように、ハッシュ テーブルには、ハッシュされてハッシュ コードが取得されるキーが含まれています。次に、このコードは特定の値が格納されるインデックスとして使用されます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

ハッシュテーブルの宣言:

ハッシュテーブル クラスは、以下の構文を使用して宣言できます。

public class Hashtable<Key,Value> extends Dictionary<Key,Value> implements Map<Key,Value>, Cloneable, Serializable

ハッシュテーブルのコンストラクター

ハッシュテーブルは、パラメーター化されたコンストラクターとパラメーター化されていないコンストラクターの両方を使用して作成できます。

  • Hashtable(): 新しいハッシュテーブルと空のハッシュテーブルは、負荷係数 0.75 と初期容量 11 で構築されます。ここで、初期容量と負荷係数はデフォルトです。
  • ハッシュテーブル (int initCapacity): 空のハッシュテーブルと同様に、前述の初期容量と負荷係数 0.75 を使用して新しいハッシュテーブルが構築されます。ここでは、負荷率のみがデフォルトです。
  • ハッシュテーブル (int initCapacity, floatloadfact): 空のハッシュテーブルと同様に、前述の初期容量と負荷係数を使用して新しいハッシュテーブルが構築されます。
  • ハッシュテーブル (Map t): 新しいハッシュテーブルは、前述のマップと同じマッピングで構築されます。

ハッシュテーブルのメソッド

HashTable で一般的に使用されるメソッドは次のとおりです。

  • clear(): このハッシュテーブルはキーが残らない状態でクリアされます。
  • contains(Object val ): このメソッドは、キーがハッシュテーブル内の値 val にマッピングされているかどうかをテストします。
  • clone(): ハッシュテーブルの浅いコピーが作成されます。
  • containsKey(Objectk ):このメソッドは、指定されたキー k がハッシュテーブルで使用できるかどうかをテストします。
  • contains a value(Objectval ):ハッシュテーブルが 1 つ以上のキーを前述の値 val にマップする場合、true が返されます。
  • 要素():値の列挙が返されます。
  • keys():キーの列挙が返されます。
  • entrySet(): マップ上に存在するマッピングに対してセット ビューが返されます。
  • equals(オブジェクトo): マップは指定されたオブジェクトと比較されます。
  • get(Objectkey): 指定されたキーが任意の値にマップされている場合、それが返されます。何もマッピングされていない場合は、null が返されます。
  • isEmpty():このメソッドは、ハッシュテーブルがキーをどの値にもマッピングしていないかどうかをチェックします。
  • keySet():マップ内に存在するキーのセット ビューが返されます。
  • size(): ハッシュテーブル内のキーの数が返されます。
  • hashCode(): マップのハッシュ コード値が返されます。
  • put(K key, Val value): Key k はハッシュテーブルの値 val にマッピングされます。
  • putAll(MapKえ、? extends Val> t): マッピングは、前述のマップからハッシュテーブルにコピーされます。
  • remove(Object k): キー k と対応する値がテーブルから削除されます。
  • values():マップ内に存在する値のコレクション ビューが返されます。

Java でハッシュテーブルを実装する例

各データ構造には独自の特別な機能があります。

以下は Java でハッシュテーブルを実装する例です。

例 #1

キーと値をハッシュテーブルに追加する Java プログラム。

コード:

//Java program to add keys and values to the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable htbl = new Hashtable();
//create an enumeration enm
Enumeration enm;
//create sing s
String s;
//create a double variable balance
double balance;
//add keys and values to the table
htbl.put(" A ", new Double(3500.50));
htbl.put(" B ", new Double(2900.00));
htbl.put(" C ", new Double(3600.00));
htbl.put(" D ", new Double(4550.50));
htbl.put(" E ", new Double(2345.67));
// Store all the keys in the enumeration enm
enm = htbl.keys();
//if more elements are present in the enm, enter this loop
while(enm.hasMoreElements()) {
s = (String) enm.nextElement();
System.out.println(s + ": " + htbl.get(s));
}
System.out.println();
// Add 1000 to value of Key A
balance = ((Double)htbl.get(" A ")).doubleValue();
htbl.put(" A ", new Double(balance + 1000));
System.out.println(" A's new balance : " + htbl.get(" A "));
}
}

出力:

コードを実行すると、A、B、C、D、E の値が表示されます。さらに、以下のように A の新規残高も表示されます。

Javaのハッシュテーブル

例 #2

ハッシュテーブルからキーと値を削除する Java プログラム。

Code:

//Java program to remove keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable before removing values: "+ htbl);
// Remove 6 and 3
htbl.remove(6);
htbl.remove(3);
System.out.println("Hashtable after removing values : "+ htbl);
}
}
<p><strong>Output:</strong></p>
<p><img  src="https://img.php.cn/upload/article/000/000/000/172500406535378.png" alt="Javaのハッシュテーブル" ></p>
<p>In this program, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then the values of 6 and 3 will be removed and display the rest of the values.</p>


<h4>Example #3</h4>
<p>Java program to get keys and values from the hashtable.</p>
<p><strong>Code:</strong></p>
<pre class="brush:php;toolbar:false">//Java program to get keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable : "+ htbl);
//if value of 3 is present, then return it else print Null
System.out.println(htbl.getOrDefault(3, "Null"));
//if value of 8 is present, then return it else print Null
System.out.println(htbl.getOrDefault(8, "Null"));
}
}

Output:

Javaのハッシュテーブル

In this program also, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then, the values for keys 3 and 8 will be retrieved using the method getOrDefault(). Since the value of 8 is not available, null will be returned in the second getOrDefault() method.

以上がJavaのハッシュテーブルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。