[Java]ハッシュ・テーブル
키(key)에 데이터(value)를 매핑할 수 있는 데이터 구조
저장 및 탐색 속도가 획기적으로 빨라짐
HashMapは構造は似ているが用途は異なる.
HashTableはkeyとvalueを1:1で取得し、HashTableに格納する.
しかし、
HashMap과 반대로 동기화
があります.HashMap에서는 값으로 null이 입력이 가능
しかしHashTable에서는 null 입력이 불가능
keyは重複していますが、valueは重複を許可します.(同期作用)ハッシュ表用語
ハッシュ関数
任意のデータを高低長の値に戻す関数です.
ハッシュ、ハッシュ値およびハッシュ・アドレス:ハッシュ関数によって返される固定長値
ハッシュ表
スロット:ハッシュ・テーブルのデータを格納するスペース
pythonではディックシャーナとして用いられる.
どのように構成されているか見てみましょう.
hash table
key value
a 111
b 222
c 333
上記の例に示すようにkey-valueはバンドル形式で表示されます.アレイとの相違
配列にリストされているデータを検索するには、検索する値を各配列の値と比較する必要があります.
ハッシュテーブルは、私が探しているキー値を知っていれば見つけることができます.
(배열보다 탐색 속도가 획기적으로 빨라짐)
メリットとデメリットハッシュ表は
(중복)
です.ハッシュ・テーブルの使用
import java.util.Hashtable;
public class Main {
public static void main(String[] args) {
// 선언하기
Hashtable ht = new Hashtable(); // 타입 설정 x Object 설정
Hashtable<Integer, Integer> i = new Hashtable<>(); // 타입 설정
Hashtable<Integer, Integer> i1 = new Hashtable<>(10); // 초기용량 지정
// 값 추가하기
ht.put("1", "aaa");
ht.put("2", "bbb");
ht.put("3", "ccc");
// 값 삭제하기
ht.remove("2"); // key값을 이용해 값을 삭제한다.
// 크기 구하기
System.out.println("size : " + ht.size());
// 값 출력하기
for (Map.Entry<String, String> e: ht.entrySet())
System.out.println("key : " + e.getKey() + ", Value : " + e.getValue());
}
}
Reference
この問題について([Java]ハッシュ・テーブル), 我々は、より多くの情報をここで見つけました https://velog.io/@conficker77/Java-해쉬-테이블-HashTableテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol