>  기사  >  Java  >  Java의 해시테이블

Java의 해시테이블

WBOY
WBOY원래의
2024-08-30 15:47:42991검색

Java에서 Hashtable은 모든 키를 특정 값에 매핑하는 키-값 쌍을 저장하는 데 사용됩니다. HashMap과 달리 동기화됩니다. 또한 Hashtable은 null 값이나 null 키를 허용하지 않으며 고유한 요소도 포함합니다. 이미 말했듯이 해시 테이블에는 해시되어 해시 코드를 얻는 키가 포함되어 있습니다. 그러면 이 코드는 특정 값이 저장될 인덱스로 사용됩니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

해시테이블 선언:

해시테이블 클래스는 아래 구문을 사용하여 선언할 수 있습니다.

public class Hashtable<Key,Value> extends Dictionary<Key,Value> implements Map<Key,Value>, Cloneable, Serializable

해시테이블 생성자

해시테이블은 매개변수화된 생성자와 매개변수화되지 않은 생성자를 모두 사용하여 생성할 수 있습니다.

  • Hashtable(): 새 해시테이블과 빈 해시테이블이 로드 계수 0.75와 초기 용량 11로 구성됩니다. 여기서는 초기 용량과 로드 계수가 기본값입니다.
  • 해시 테이블(int initCapacity): 새 해시 테이블과 빈 해시 테이블이 언급된 초기 용량 및 로드 팩터 0.75로 구성됩니다. 여기서는 부하율만 기본값입니다.
  • 해시 테이블(int initCapacity, float loadfact): 새 해시 테이블과 빈 해시 테이블이 언급된 초기 용량 및 로드 팩터를 사용하여 구성됩니다.
  • 해시 테이블(Map t): 언급된 맵과 동일한 매핑으로 새 해시 테이블이 구성됩니다.

해시테이블의 방법

다음은 HashTable에서 흔히 사용되는 메소드들이다.

  • clear(): 이 해시테이블은 남은 키 없이 지워집니다.
  • contains(Object val ): 이 메서드는 키가 해시 테이블의 val 값에 매핑되는지 여부를 테스트합니다.
  • clone(): 해시 테이블에 대한 얕은 복사본이 생성됩니다.
  • containsKey(Object k ): 이 메서드는 지정된 키 k를 해시 테이블에서 사용할 수 있는지 여부를 테스트합니다.
  • 값 포함(객체 val ): 해시 테이블이 언급된 값 val에 1개 이상의 키를 매핑하는 경우 true가 반환됩니다.
  • elements(): 값의 열거형이 반환됩니다.
  • keys(): Key의 열거형이 반환됩니다.
  • entrySet(): 지도에 있는 매핑에 대해 세트 뷰가 반환됩니다.
  • 같음(객체 o): 지도가 지정된 객체와 비교됩니다.
  • get(객체key): 지정된 키가 임의의 값에 매핑되면 반환됩니다. 매핑된 항목이 없으면 null이 반환됩니다.
  • isEmpty(): 이 메소드는 해시 테이블이 키를 어떤 값에도 매핑하지 않는지 확인합니다.
  • keySet(): 맵에 있는 키에 대해 세트 뷰가 반환됩니다.
  • size(): 해시 테이블의 키 개수가 반환됩니다.
  • hashCode(): 지도에 대한 해시 코드 값이 반환됩니다.
  • put(키, Val 값): 키 k는 해시테이블의 val 값에 매핑됩니다.
  • putAll(지도K어,? 확장 Val> t): 매핑은 언급된 맵에서 해시 테이블로 복사됩니다.
  • 제거(객체 k): 키 k와 해당 값이 테이블에서 제거됩니다.
  • (): 지도에 있는 값에 대해 컬렉션 뷰가 반환됩니다.

Java에서 해시테이블을 구현하는 예

각 데이터 구조에는 고유한 특수 기능이 있습니다.

아래는 Java에서 해시테이블을 구현한 예입니다.

예시 #1

해시테이블에 키와 값을 추가하는 Java 프로그램

코드:

//Java program to add keys and values to the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable htbl = new Hashtable();
//create an enumeration enm
Enumeration enm;
//create sing s
String s;
//create a double variable balance
double balance;
//add keys and values to the table
htbl.put(" A ", new Double(3500.50));
htbl.put(" B ", new Double(2900.00));
htbl.put(" C ", new Double(3600.00));
htbl.put(" D ", new Double(4550.50));
htbl.put(" E ", new Double(2345.67));
// Store all the keys in the enumeration enm
enm = htbl.keys();
//if more elements are present in the enm, enter this loop
while(enm.hasMoreElements()) {
s = (String) enm.nextElement();
System.out.println(s + ": " + htbl.get(s));
}
System.out.println();
// Add 1000 to value of Key A
balance = ((Double)htbl.get(" A ")).doubleValue();
htbl.put(" A ", new Double(balance + 1000));
System.out.println(" A's new balance : " + htbl.get(" A "));
}
}

출력:

코드를 실행하면 A, B, C, D, E의 값이 표시됩니다. 또한 아래와 같이 A의 새로운 잔액도 표시됩니다.

Java의 해시테이블

예시 #2

해시테이블에서 키와 값을 제거하는 Java 프로그램

Code:

//Java program to remove keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable before removing values: "+ htbl);
// Remove 6 and 3
htbl.remove(6);
htbl.remove(3);
System.out.println("Hashtable after removing values : "+ htbl);
}
}

Output:

Java의 해시테이블

In this program, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then the values of 6 and 3 will be removed and display the rest of the values.

Example #3

Java program to get keys and values from the hashtable.

Code:

//Java program to get keys and values from the hashtable
import java.util.Enumeration;
import java.util.Hashtable;
//class
public class HashTableExample {
//main method
public static void main(String args[]) {
// Hashtable creation
Hashtable<Integer,String> htbl = new Hashtable<Integer,String>();
//add keys and values to the table
htbl.put(1,"29");
htbl.put(2,"30");
htbl.put(3,"31");
htbl.put(4,"32");
htbl.put(5,"33");
htbl.put(6,"34");
htbl.put(7,"35");
System.out.println("Hashtable : "+ htbl);
//if value of 3 is present, then return it else print Null
System.out.println(htbl.getOrDefault(3, "Null"));
//if value of 8 is present, then return it else print Null
System.out.println(htbl.getOrDefault(8, "Null"));
}
}

Output:

Java의 해시테이블

In this program also, values of 1, 2, 3, 4, 5, 6 and 7 will be displayed on executing the code. Then, the values for keys 3 and 8 will be retrieved using the method getOrDefault(). Since the value of 8 is not available, null will be returned in the second getOrDefault() method.

위 내용은 Java의 해시테이블의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java 컬렉션 스트림다음 기사:Java 컬렉션 스트림