HashMap & Hashtable
1699 ワード
シーケンスX,繰返し(キーX,値O)
Mapインタフェースを実装します.キー値ペアとしてデータを保存
Hashtable:旧バージョン(同期O)
HashMap:新バージョン(同期X)
Mapインタフェースを実装する典型的な集合クラス
順序を維持するにはLinkedHashMapを使用します
ハッシュ技術を用いてデータを格納するため,データが多くても検索速度が速い.
key-value pair:keyは繰返しX、valueは繰返しO
public class HashMap extends AbstractMap
implements Map, Cloneable, Serializable {
transient Entry[] table; // 배열. Entry = key-value pair
...
static class Entry implements Map.Entry {
final Object key;
Object value;
}
}
TreeMap:TreeSetと同じプロパティ(バイナリナビゲーションツリー)
範囲検索とソートに有利な集合クラス
HashMapよりもデータの追加/削除時間が長い
ハッシュ#ハッシュ#
エドワード・ブスコースの概要を参照してください
key->ハッシュ関数->リターンインデックス(ハッシュコードと呼ばれる格納場所)
ハッシュとは?ハッシュ関数を用いて、ハッシュテーブルにデータを格納および読み出します.
スケジュールは何ですか.アレイ(Array)とリンクリスト(LinkedList)の組み合わせの形式.
Hashtable = {LinkedList1, LinkedList2, LinkedList3, LinkedList4 ...};
アレイの利点「アクセス性」+リンクリストの利点「可変ガラス」=Hashtable
HashCode()を使用する関数:HashTable、HashMap、HashSet
-> Objects.hash()を使用して作成します.
HashTableに保存されているデータを取得するプロセス
「同じキー」の場合、ハッシュ関数は「常に同じハッシュコード」を返さなければなりません.
異なるキーであっても、同じ値のハッシュコードを返すことができる.(同じリンクリストに存在します.)
Reference
この問題について(HashMap & Hashtable), 我々は、より多くの情報をここで見つけました https://velog.io/@kimsy8979/HashMap-Hashtableテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol