HashMap 3

ConcurrentHashMap – 멀티스레드 환경에서 안전하게 Map 사용하기

Java에서 HashMap은 단일 스레드에서는 빠르게 작동하지만, 멀티스레드 환경에서는 안전하지 않다.여러 스레드가 동시에 put()이나 get()을 호출하면 데이터 손상, ConcurrentModificationException, 무한 루프 같은 심각한 문제가 발생할 수 있다. HashMap의 멀티스레드 한계Map map = new HashMap();스레드 간 동기화가 없기 때문에 동시 접근 시 데이터 충돌 가능성이 있다최악의 경우 Iterator 사용 중 ConcurrentModificationException이나 무한 루프도 일어난다. ConcurrentHashMap – 안전하고 빠른 멀티스레드 Map스레드 안전(Thread-safe): 여러 스레드가 동시에 접근해도 안전높은 병렬성: 내부적으로 버..

IT/JAVA 2025.07.24

HashMap

HashMap- 자바의 컬렉션 프레임워크 중 하나로, 키와 값의 쌍으로 데이터를 저장하는 자료구조- 해시 테이블을 기반으로 하며, 키를 해시 함수로 해시 코드로 변환하여 값을 저장하고 검색한다- 키와 값의 쌍을 저장하며, 키는 중복될 수 없고, 값은 중복될 수 있다- 동일한 키로 값을 저장하면 기존 값이 덮어쓰여진다- 빠른 검색: 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있다- 키(Key)값을 통해서만 검색 가능  주요 메서드put(K key, V value)키와 값을 HashMap에 저장한다get(Object key)키에 해당하는 값을 반환한다. 키가 존재하지 않으면 null을 반환한다.remove(Object key)키에 해당하는 키-값 쌍을 제거한다containsKey(Object k..

[프로그래머스 138476] [Java] 귤 고르기

1. 같은 종류의 원소 갯수 구하기   =>  HashMap 이용2. 1번을 내림차순 정렬3. 갯수가 많은 것부터 k개 고르기✏️ Solution 1 import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;public class 귤고르기 { public static int solution(int k, int[] tangerine) { int sum = 0; // 고를 귤의 개수 int cnt = 0; // 최솟값 카운트 HashMap map = new HashMap(); for(int num : tangerine) { map.put(n..

반응형