English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서 우리는 Java ConcurrentMap 인터페이스와 그 메서드를 배웁니다.
Java 컬렉션 프레임워크의 ConcurrentMap 인터페이스는 스레드 안전한 매핑을 제공합니다. 즉, 여러 스레드가 동시에 이 매핑에 접근할 수 있으며, 매핑 내 항목의 일관성에 영향을 미치지 않습니다.
ConcurrentMap은 동기화된 맵으로 불립니다.
그는 상속받았습니다.Map 인터페이스。
ConcurrentMap이 인터페이스이기 때문에, 그에서 객체를 생성할 수 없습니다.
ConcurrentMap 인터페이스의 기능을 사용하기 위해, 우리는 이 인터페이스를 구현한 클래스인 ConcurrentHashMap을 사용해야 합니다.
ConcurrentMap을 사용하려면 먼저 java.util.concurrent.ConcurrentMap 패키지를 가져오아야 합니다. 패키지를 가져온 후, 다음과 같은 방법으로 병행 매핑을 생성합니다.
// ConcurrentHashMap 클래스의 사용 CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();
위 코드에서는 numbers라는 이름의 ConcurrentMap를 생성했습니다.
이곳에서는
Key - map의 각 요소(값)과 연결되는 유일한 식별자
Value - 키와 연결된 map의 요소
ConcurrentMap 인터페이스는 Map 인터페이스의 모든 메서드를 포함하고 있습니다. 이는 Map이 ConcurrentMap 인터페이스의 슈퍼 인터페이스이기 때문입니다.
이 모든 메서드 외에도, ConcurrentMap 인터페이스에 특화된 메서드가 있습니다.
putIfAbsent() - 지정된 키가 아직 어떤 값에도 매핑되지 않았다면, 지정된 키를/값이 매핑에 추가됩니다.
compute() - 지정된 키 및 이전 매핑된 값에 대한 항목(키/값 매핑).
computeIfAbsent() - 키가 아직 어떤 값에도 매핑되지 않았다면, 지정된 함수를 사용하여 지정된 키에 대해 값을 계산합니다.
computeIfPresent() - 지정된 값이 이미 지정된 키에 매핑되었다면, 지정된 키에 대해 새 항목(키/값 매핑).
forEach() - map의 모든 항목에 접근하여 지정된 작업을 수행합니다.
merge() -지정된 키가 이미 특정 값에 매핑되어 있다면, 지정된 새 값과 지정된 키의 기존 값을 병합합니다. 키가 아직 매핑되지 않았다면, 이 메서드는 지정된 값을 키와 연결합니다.
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main { public static void main(String[] args) { //ConcurrentHashMap을 사용하여 ConcurrentMap를 생성합니다. ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>(); // 요소를 map에 삽입합니다 numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("ConcurrentMap: " + numbers); //지정된 키를 접근합니다 int value = numbers.get("One"); System.out.println("접근된 값: " + value); //지정된 키의 값을 삭제합니다 int removedValue = numbers.remove("Two"); System.out.println("삭제된 값: " + removedValue); } }
출력 결과
ConcurrentMap: {One=1, Two=2, Three=3} 접근된 값: 1 삭제된 값: 2
ConcurrentHashMap에 대한更多信息를��고하려면 방문하십시오Java ConcurrentHashMap。