Java 맵에 중복 키 저장
1. 표준 Maps Java에는 인터페이스 Map의 여러 구현이 있으며 각 구현에는 고유한 특성이 있다. 그러나 기존 Java 핵심 Map 구현 중 어떤 것도 Map이 단일 키에 대한 여러 값을 처리하도록 허용하지 않는다. 보시다시피 동일한 키에 대해 두 개의 값을 삽입하려고 하면 두 번째 값이 저장되고 첫 번째 값은 삭제된다. 또한 put(K ...
1. 표준 Maps Java에는 인터페이스 Map의 여러 구현이 있으며 각 구현에는 고유한 특성이 있다. 그러나 기존 Java 핵심 Map 구현 중 어떤 것도 Map이 단일 키에 대한 여러 값을 처리하도록 허용하지 않는다. 보시다시피 동일한 키에 대해 두 개의 값을 삽입하려고 하면 두 번째 값이 저장되고 첫 번째 값은 삭제된다. 또한 put(K ...
1.Static HashMap의 정적 초기화 정적 코드 블록을 사용하여 HashMap을 초기화할 수 있다. public static Map<String, String> articleMapOne; static { articleMapOne = new HashMap<>(); articleMapOne.put("ar01",...
1. 차이점 Collections.synchronizedMap() 및 ConcurrentHashMap은 모두 데이터 컬렉션에 대한 스레드 안전 작업을 제공한다. Collections 유틸리티 클래스는 컬렉션에서 작동하고 래핑된 컬렉션을 반환하는 다형성 알고리즘을 제공한다. 해당 synchronizedMap() 메서드는 스레드로부터 안전한 기능을 제공...
1. 대소문자를 구분하지 않는 키가 있는 맵 하나의 항목이 있는 Map<String, Integer>가 있다. map.put("ABC", 2); 대소문자를 구분하는 키가 있는 맵으로 작업할 때 다음 두 항목으로 끝난다. 그러나 대소문자를 구분하지 않는 키가 있는 맵으로 작업할 때 내용은 다음과 같다. 다음 예제에서는 인기...
1. 스트림 정렬 로직 여러 스레드에서 지속적으로 발생하는 이벤트 스트림이 있다고 가정한다. 마지막 60초의 이벤트와 60초보다 오래된 이벤트를 가져올 수 있어야 한다. 먼저 이벤트 데이터의 구조를 정의한다. public class Event { private ZonedDateTime eventTime; private String c...
1. ConcurrentMap ConcurrentMap은 Map 인터페이스의 확장이다. 스레드 안전성과 처리량을 조정하는 문제를 해결하기 위한 구조 및 지침을 제공하는 것을 목표로 한다. 여러 인터페이스 기본 메서드를 재정의함으로써 ConcurrentMap은 스레드 안전성 및 메모리 일관성 원자 작업을 제공하는 유효한 구현에 대한 지침을 제공한다. ...
1. Unmodifiable vs Immutable Unmodifiable Map은 modifiable Map에 대한 래퍼일 뿐이며 수정을 직접 허용하지 않는다. Map<String, String> mutableMap = new HashMap<>(); mutableMap.put("USA", "North America"); Ma...
1. 설정 요일에 플레이하는 스포츠와 요일을 매핑해야 하는 간단한 요구 사항이 있다. Monday Soccer Tuesday Basketball Wednesday Hiking Thursday Karate 이를 위해 enum을 사용할 수 있다. public enum DayOfWeek { MONDAY, TUESDAY, WE...
1. LinkedHashMap vs HashMap LinkedHashMap 클래스는 대부분의 측면에서 HashMap과 매우 유사하다. 그러나 링크된 해시맵은 해시맵의 기능을 향상시키기 위해 해시 테이블과 링크된 목록을 모두 기반으로 한다. 기본 크기 16의 기본 배열 외에도 모든 항목을 통해 실행되는 이중 연결 목록을 유지 관리한다. 요소의 순서를...
1. Hashtable을 사용하는 경우 Hashtable은 Java에서 가장 오래된 해시 테이블 데이터 구조 구현이다. HashMap은 JDK1.2에서 도입된 두 번째 구현이다. 각 단어에 정의가 있는 사전이 있다고 가정한다. 또한 사전에서 단어를 빠르게 가져오고, 삽입하고, 제거해야 한다. 따라서 Hashtable (또는 HashMap)이 의미...