Java TreeMap データ構造の使用方法

Java TreeMap データ構造の使用方法

Java TreeMap クラスは、マップ インターフェイスを使用してツリー構造にデータを格納します。このクラスは AbstractMap クラスを拡張し、その親クラスと同様に、TreeMap には 2 つの型パラメーターがあります。その型パラメーターの 1 つは TreeMap のキーを表し、もう 1 つは値を表します。





TreeMap データ構造はキーと値のペアを格納し、このデータに対して CRUD 操作を実行できるようにします。





Java で TreeMap を作成する方法

TreeMap クラスには、新しい TreeMap オブジェクトを作成するために使用できる 4 つのコンストラクターがあります。デフォルトのコンストラクターは、4 つの中で最も人気があります。このコンストラクターは引数をとらず、空のツリー マップを生成します。





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

上記のコードは、と呼ばれる空のツリー マップを生成します。 顧客 .

TreeMap データ構造への入力

置く() メソッドは項目を TreeMap オブジェクトに追加します。キーとその値の 2 つの引数を取ります。アイテムをツリー マップにランダムな順序で追加できます。データ構造は、キーに従って昇順でアイテムを格納します。



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

上記のコードは、顧客ツリー マップに 5 人の顧客をランダムな順序で追加します。

ラズベリーパイ3でwifiを設定する

TreeMap でのアイテムの表示

TreeMap クラスは、そのデータをオブジェクトに格納します。したがって、ツリー マップ内のすべてのアイテムを表示するには、ツリー マップ オブジェクトをコンソールに出力するだけです。





削除されたYouTubeビデオが何であったかを見つける方法
// View all tree map items as an object 
System.out.println(customers);

上記のコードは、次の出力をコンソールに出力します。

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

上記のオブジェクトでは、項目が昇順で表示されていることに注意してください。を使用して、各アイテムとそれに対応するキーを表示することもできます Java for ループ .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

上記のコードは、次の出力をコンソールに出力します。

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

TreeMap 内のアイテムの更新

TreeMap クラスを使用すると、既存のアイテムを更新できます。 交換() 方法。置換方法は 2 つあります。最初のメソッドは、既存のキーと、既存のキーをマップする新しい値を受け取ります。

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

上記のコードは、コンソールに次のオブジェクトを出力します。

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

ご覧のように キム・ブラウン 今でしょ キム・スミス . 2 番目の replace() メソッドは、既存のキー、キーの現在の値、およびキーにマップする新しい値を取ります。

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

上記のコードは、コンソールに次のオブジェクトを出力します。

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

上のオブジェクトで ミシェル・ノア 置き換えます ジム・ライリー .

Gmailアカウントをプライマリにする方法

TreeMap からのアイテムの削除

ツリー マップから 1 つのアイテムを削除する場合は、 削除する() メソッドが唯一のオプションです。削除するアイテムに関連付けられたキーを受け取り、削除された値を返します。

// Remove an item 
customers.remove(104);
System.out.println(customers);

上記のコードを実行すると、次のオブジェクトがコンソールに出力されます。

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

これ Java クラス も持っています クリア() ツリー マップ内のすべてのアイテムを削除できるメソッド。

TreeMap と HashMap Java クラス

TreeMap と HashMap は、より一般的な Java マップ クラスの 2 つです。どちらも AbstractMap クラスを拡張します。この関係により、TreeMap クラスと HashMap クラスは多くの同じ機能にアクセスできます。

ただし、これら 2 つのマップ クラスには注目すべき違いがいくつかあります。 TreeMap は Map インターフェースの Red-Black ツリー実装を使用し、HashMap はハッシュ テーブルを使用します。 HashMap では単一の null キーを格納できますが、TreeMap では格納できません。最後に、HashMap は TreeMap より高速です。前者のアルゴリズム速度は O(1) ですが、後者は O(log(n)) です。