Javaのハッシュテーブルと2分木
ハッシュテーブル
ハッシュテーブルは、キーと値のペアを高速に検索するためのデータ構造デス。
キーと値のペアは、ハッシュ関数を使用して、ハッシュ値と呼ばれる値に変換されます。
ハッシュ値は、ハッシュテーブル内の配列の要素のインデックスとして使用されます。
コード例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// ハッシュテーブルの宣言
HashMap<String, Integer> map = new HashMap<>();
// 要素の追加
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 要素の取得
Integer value = map.get("B");
System.out.println(value); // 2
// 要素の削除
map.remove("A");
// 要素の全件表示
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
}
}
上記コードは、ハッシュテーブルを使用して、文字列と整数をペアにして格納するプログラムです。
コードの説明
// ハッシュテーブルの宣言
HashMap<String, Integer> map = new HashMap<>();
HashMap
クラスのインスタンスを生成します。HashMap
クラスは、キーと値のペアを格納するデータ構造です。
↓
// 要素の追加
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
put()
メソッドを使用して、要素を追加します。put()
メソッドは、指定されたキーと値のペアをハッシュテーブルに追加します。
↓
// 要素の取得
Integer value = map.get("B");
System.out.println(value);
get()
メソッドを使用して、要素を取得します。get()
メソッドは、指定されたキーの値を返します。
↓
// 要素の削除
map.remove("A");
remove()
メソッドを使用して、要素を削除します。remove()
メソッドは、指定されたキーの要素をハッシュテーブルから削除します。
↓
// 要素の全件表示
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
keySet()
メソッドを使用して、ハッシュテーブルのキーの配列を取得します。for
ループを使用して、配列の要素を順番に取得し、キーと値を表示します。
↓実行結果
2
B: 2
C: 3
2分木
二分木は、データの順序を保持するためのデータ構造デス。
データは、親ノード、左の子ノード、右の子ノードという構造で構成されています。
データは、親ノードの値よりも小さい場合、左の子ノードに格納されます。
親ノードの値よりも大きい場合、右の子ノードに格納されます。
図
二分木
3 // 親ノード
/ \
2 4 // 子ノード
/ \ / \
1 5 6 7
コード例
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
// 二分木の宣言
TreeMap<Integer, String> map = new TreeMap<>();
// 要素の追加
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
// 要素の取得
String value = map.get(2);
System.out.println(value); // B
// 要素の削除
map.remove(1);
// 要素の全件表示
for (Integer key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
}
}
上記コードは、二分木を使用して、整数と文字列をペアにして格納するプログラムです。
コードの解説
// 二分木の宣言
TreeMap<Integer, String> map = new TreeMap<>();
TreeMap
クラスのインスタンスを生成します。TreeMap
クラスは、キーと値のペアを順序付きで格納するデータ構造です。
↓
// 要素の追加
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
put()
メソッドを使用して、要素を追加します。put()
メソッドは、指定されたキーと値のペアを二分木に追加します。
↓
// 要素の取得
String value = map.get(2);
System.out.println(value);
get()
メソッドを使用して、要素を取得します。get()
メソッドは、指定されたキーの値を返します。
↓
// 要素の削除
map.remove(1);
remove()
メソッドを使用して、要素を削除します。remove()
メソッドは、指定されたキーの要素を二分木から削除します。
↓
// 要素の全件表示
for (Integer key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
keySet()
メソッドを使用して、二分木のキーの配列を取得します。for
ループを使用して、配列の要素を順番に取得し、キーと値を表示します。
↓実行結果
B
2: B
3: C