English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 흐름 제어

Java 배열

Java 동기화된 객체(I)

Java 동기화된 객체(II)

Java 동기화된 객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 컬렉션

Java Set 컬렉션

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java ConcurrentMap 인터페이스

이 튜토리얼에서 우리는 Java ConcurrentMap 인터페이스와 그 메서드를 배웁니다.

Java 컬렉션 프레임워크의 ConcurrentMap 인터페이스는 스레드 안전한 매핑을 제공합니다. 즉, 여러 스레드가 동시에 이 매핑에 접근할 수 있으며, 매핑 내 항목의 일관성에 영향을 미치지 않습니다.

ConcurrentMap은 동기화된 맵으로 불립니다.

그는 상속받았습니다.Map 인터페이스

ConcurrentMap 구현 클래스

ConcurrentMap이 인터페이스이기 때문에, 그에서 객체를 생성할 수 없습니다.

ConcurrentMap 인터페이스의 기능을 사용하기 위해, 우리는 이 인터페이스를 구현한 클래스인 ConcurrentHashMap을 사용해야 합니다.

ConcurrentMap을 어떻게 사용하나요?]}

ConcurrentMap을 사용하려면 먼저 java.util.concurrent.ConcurrentMap 패키지를 가져오아야 합니다. 패키지를 가져온 후, 다음과 같은 방법으로 병행 매핑을 생성합니다.

// ConcurrentHashMap 클래스의 사용
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();

위 코드에서는 numbers라는 이름의 ConcurrentMap를 생성했습니다.

이곳에서는

  • Key - map의 각 요소(값)과 연결되는 유일한 식별자

  • Value - 키와 연결된 map의 요소

ConcurrentMap 메서드

ConcurrentMap 인터페이스는 Map 인터페이스의 모든 메서드를 포함하고 있습니다. 이는 Map이 ConcurrentMap 인터페이스의 슈퍼 인터페이스이기 때문입니다.

이 모든 메서드 외에도, ConcurrentMap 인터페이스에 특화된 메서드가 있습니다.

  • putIfAbsent() - 지정된 키가 아직 어떤 값에도 매핑되지 않았다면, 지정된 키를/값이 매핑에 추가됩니다.

  • compute() - 지정된 키 및 이전 매핑된 값에 대한 항목(키/값 매핑).

  • computeIfAbsent() - 키가 아직 어떤 값에도 매핑되지 않았다면, 지정된 함수를 사용하여 지정된 키에 대해 값을 계산합니다.

  • computeIfPresent() - 지정된 값이 이미 지정된 키에 매핑되었다면, 지정된 키에 대해 새 항목(키/값 매핑).

  • forEach() - map의 모든 항목에 접근하여 지정된 작업을 수행합니다.

  • merge() -지정된 키가 이미 특정 값에 매핑되어 있다면, 지정된 새 값과 지정된 키의 기존 값을 병합합니다. 키가 아직 매핑되지 않았다면, 이 메서드는 지정된 값을 키와 연결합니다.

ConcurrentHashMap에서 ConcurrentMap 구현

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