logo

Java 해시테이블 클래스

Java Hashtable 클래스는 키를 값에 매핑하는 해시 테이블을 구현합니다. Dictionary 클래스를 상속하고 Map 인터페이스를 구현합니다.

기억해야 할 점

  • Hashtable은 목록의 배열입니다. 각 목록을 버킷이라고 합니다. 버킷의 위치는 hashcode() 메서드를 호출하여 식별됩니다. 해시테이블에는 키를 기반으로 하는 값이 포함됩니다.
  • Java Hashtable 클래스에는 고유한 요소가 포함되어 있습니다.
  • Java Hashtable 클래스는 null 키나 값을 허용하지 않습니다.
  • Java Hashtable 클래스가 동기화됩니다.
  • Hashtable 클래스의 초기 기본 용량은 11이고, loadFactor는 0.75입니다.

해시테이블 클래스 선언

java.util.Hashtable 클래스 선언을 살펴보겠습니다.

 public class Hashtable extends Dictionary implements Map, Cloneable, Serializable 

해시테이블 클래스 매개변수

java.util.Hashtable 클래스의 매개변수를 살펴보겠습니다.

    케이: 이 맵에서 관리하는 키 유형입니다.안에: 매핑된 값의 종류입니다.

Java Hashtable 클래스의 생성자

건설자설명
해시테이블()초기 기본 용량과 부하율을 갖는 빈 해시테이블을 생성합니다.
해시테이블(정수 용량)정수 매개변수를 허용하고 지정된 초기 용량을 포함하는 해시 테이블을 생성합니다.
해시테이블(int 용량, float loadFactor)지정된 초기 용량과 loadFactor를 갖는 해시 테이블을 생성하는 데 사용됩니다.
해시테이블(맵 t)주어진 Map과 동일한 매핑으로 새로운 해시 테이블을 생성합니다.

Java Hashtable 클래스의 메소드

방법설명
무효 클리어()해시 테이블을 재설정하는 데 사용됩니다.
객체 복제()Hashtable의 얕은 복사본을 반환합니다.
V 계산(K 키, BiFunction remappingFunction)지정된 키와 현재 매핑된 값(또는 현재 매핑이 없는 경우 null)에 대한 매핑을 계산하는 데 사용됩니다.
V 계산IfAbsent(K 키, 함수 매핑함수)지정된 키가 아직 값과 연결되어 있지 않은 경우(또는 null에 매핑된 경우) 지정된 매핑 함수를 사용하여 해당 값을 계산하는 데 사용되며, null이 아닌 경우 해당 키를 이 맵에 입력합니다.
V 계산IfPresent(K 키, BiFunction remappingFunction)지정된 키의 값이 존재하고 null이 아닌 경우 키와 현재 매핑된 값이 주어지면 새 매핑을 계산하는 데 사용됩니다.
열거 요소()해시 테이블에 있는 값의 열거를 반환합니다.
세트엔트리셋()지도에 포함된 매핑의 집합 보기를 반환합니다.
부울 같음(객체 o)지정된 객체를 맵과 비교하는 데 사용됩니다.
void forEach(BiConsumer 작업)모든 항목이 처리되거나 작업에서 예외가 발생할 때까지 맵의 각 항목에 대해 지정된 작업을 수행합니다.
V getOrDefault(객체 키, V defaultValue)지정된 키가 매핑된 값을 반환하거나, 맵에 키에 대한 매핑이 포함되어 있지 않은 경우 defaultValue를 반환합니다.
정수 해시코드()지도의 해시 코드 값을 반환합니다.
열거형 키()해시테이블에 있는 키의 열거를 반환합니다.
키세트() 설정맵에 포함된 키의 Set 뷰를 반환합니다.
V 병합(K 키, V 값, BiFunction remappingFunction)지정된 키가 아직 값과 연결되어 있지 않거나 null과 연결된 경우 해당 키를 지정된 null이 아닌 값과 연결합니다.
V put(K 키, V 값)해시 테이블에 지정된 키와 함께 지정된 값을 삽입합니다.
무효 putAll(Map t))모든 키-값 쌍을 맵에서 해시테이블로 복사하는 데 사용됩니다.
V putIfAbsent(K 키, V 값)지정된 키가 아직 값과 연결되지 않은 경우(또는 null에 매핑된 경우) 해당 키를 지정된 값과 연결하고 null을 반환하고, 그렇지 않으면 현재 값을 반환합니다.
불리언 제거(객체 키, 객체 값)해시 테이블에서 연관된 지정된 키와 함께 지정된 값을 제거합니다.
V 대체(K 키, V 값)지정된 키에 대해 지정된 값을 대체합니다.
부울 교체(K 키, V oldValue, V newValue)지정된 키의 이전 값을 새 값으로 바꿉니다.
void replacementAll(BiFunction 함수)모든 항목이 처리되거나 함수에서 예외가 발생할 때까지 각 항목의 값을 해당 항목에 대해 지정된 함수를 호출한 결과로 바꿉니다.
문자열 toString()Hashtable 객체의 문자열 표현을 반환합니다.
컬렉션 값()맵에 포함된 값의 컬렉션 뷰를 반환합니다.
boolean contain(객체 값)이 메서드는 해당 값과 동일한 값이 해시 테이블 내에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
boolean containValue(객체 값)이 메서드는 해당 값과 동일한 값이 해시 테이블 내에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
boolean containKey(객체 키)이 메서드는 해시 테이블 내에 키와 동일한 키가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
부울 isEmpty()이 메서드는 해시 테이블이 비어 있으면 true를 반환합니다. 하나 이상의 키가 포함되어 있으면 false를 반환합니다.
보호된 무효 재해시()해시 테이블의 크기를 늘리고 모든 키를 다시 해시하는 데 사용됩니다.
V get(객체 키)이 메소드는 키와 연관된 값을 포함하는 객체를 반환합니다.
V 제거(객체 키)키와 해당 값을 제거하는 데 사용됩니다. 이 메서드는 키와 관련된 값을 반환합니다.
정수 크기()이 메서드는 해시 테이블의 항목 수를 반환합니다.

Java 해시테이블 예

 import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
지금 테스트해보세요

산출:

 103 Rahul 102 Ravi 101 Vijay 100 Amit 

Java 해시테이블 예: 제거()

 import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } } 

산출:

 Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit} 

Java 해시테이블 예: getOrDefault()

 import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } } 

산출:

 Vijay Not Found 

Java 해시테이블 예: putIfAbsent()

 import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } } 

산출:

 Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} 

Java 해시테이블 예: 도서

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

산출:

 3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8