Javaプログラムのハッシュテーブルと2分木

Javaプログラムのハッシュテーブルと2分木
目次

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

教科書

Pythonの教科書は「やさしいPython」です。

Javaの教科書は「スッキリわかるJava入門 実践編 第3版」です。

著:中山清喬, 著:国本大悟, 監修:株式会社フレアリンク
¥2,680 (2024/04/28 18:03時点 | Amazon調べ)

SQLの教科書は「スッキリわかるSQL入門第3版」です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次