728x90
Java에서 해시(Hash)는 주로 데이터의 저장 및 검색 속도를 향상시키는 용도로 활용됩니다. 해시 함수를 통해 데이터를 특정 위치에 빠르게 저장하고 검색할 수 있습니다.
해시를 활용하는 대표적인 클래스로는 HashMap, HashSet 등이 있습니다.
HashMap:
HashMap은 키와 값의 쌍을 저장하는 Map 인터페이스의 구현체입니다. 키는 해시 함수를 통해 특정 위치에 저장되며, 이를 통해 키에 해당하는 값을 빠르게 찾을 수 있습니다.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("apple", 3);
hashMap.put("banana", 2);
hashMap.put("cherry", 1);
System.out.println(hashMap); // 출력: {apple=3, banana=2, cherry=1}
}
}
HashSet:
HashSet은 중복된 값을 허용하지 않는 Set 인터페이스의 구현체입니다. 내부적으로 HashMap을 사용하여 원소를 저장하므로, 원소의 추가, 삭제, 검색 등의 연산을 평균적으로 상수 시간에 할 수 있습니다.
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<Integer> hashSet = new HashSet<>();
hashSet.add(3);
hashSet.add(1);
hashSet.add(2);
hashSet.add(1);
System.out.println(hashSet); // 출력: [1, 2, 3]
}
}
이 외에도, 해시는 캐시 구현, 문자열 처리 등 다양한 문제에서 활용됩니다. 해시 함수를 통해 데이터를 특정 범위 내의 정수로 변환하여 사용하는 특성 때문에, 데이터의 분포가 균일하게 이루어지는 경우 빠른 연산 속도를 보장할 수 있습니다.
728x90
'Java > Data Structure(Java)' 카테고리의 다른 글
Java에서의 그래프(Graph) 활용 (1) | 2023.12.07 |
---|---|
Java에서의 트리(Tree) 활용 (0) | 2023.12.06 |
Java에서의 큐(Queue) 활용 (1) | 2023.12.06 |
Java에서의 스택(Stack) 활용 (0) | 2023.12.06 |
Java에서의 연결 리스트(LinkedList) 활용 (0) | 2023.12.06 |