JavaTM Platform
Standard Ed. 6

java.util.concurrent
인터페이스 ConcurrentMap<K, V>

형태 파라미터:
K - 이 맵이 보관 유지하는 키의 형태
V - 맵 되는 값의 형태
모든 슈퍼 인터페이스:
Map <K, V>
기존의 서브 인터페이스의 일람:
ConcurrentNavigableMap <K, V>
기존의 구현 클래스의 일람:
ConcurrentHashMap , ConcurrentSkipListMap


public interface ConcurrentMap<K, V>
extends Map <K, V>

추가의 원자적 putIfAbsent,remove, 및 replace 메소드를 제공하는 Map 입니다.

메모리 무결성 효과:다른 동시성 처리 컬렉션과 같이, 객체를 키 또는 값으로 해서 ConcurrentMap 에 배치하기 전의 thread내의 액션은, 다른 thread에서의 그 객체에의 액세스 또는 ConcurrentMap 로부터의 삭제에 계속되는 액션보다「전에 발생」 합니다.

이 인터페이스는,Java Collections Framework 의 멤버입니다.

도입된 버젼:
1.5

상자의 클래스의 개요
 
인터페이스 java.util. Map 로부터 상속된 상자의 클래스/인터페이스
Map.Entry <K ,V >
 
메소드의 개요
 V putIfAbsent (K  key, V  value)
          지정된 키가 아직 값과 관련지을 수 있지 않은 경우는, 지정된 값에 관련짓습니다.
 boolean remove (Object  key, Object  value)
          지정된 값에 키가 현재 매핑 되고 있는 경우에게만, 그 키의 엔트리를 삭제합니다.
 V replace (K  key, V  value)
          키가 값에 현재 매핑 되고 있는 경우에게만, 그 키의 엔트리를 치환합니다.
 boolean replace (K  key, V  oldValue, V  newValue)
          지정된 값에 키가 현재 매핑 되고 있는 경우에게만, 그 키의 엔트리를 치환합니다.
 
인터페이스 java.util. Map 로부터 상속된 메소드
clear , containsKey , containsValue , entrySet , equals , get , hashCode , isEmpty , keySet , put , putAll , remove , size , values
 

메소드의 상세

putIfAbsent

V  putIfAbsent(K  key,
              V  value)
지정된 키가 아직 값과 관련지을 수 있지 않은 경우는, 지정된 값에 관련짓습니다. 이것은 다음의 기술과 동등합니다.
if (! map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
다만, 액션이 원자적으로 실행되는 점이 다릅니다.

파라미터:
key - 지정된 값을 관련지을 수 있는 키
value - 지정된 키에 관련지을 수 있는 값
반환값:
지정된 키에 관련지을 수 있었던 이전의 값. 키의 매핑이 없었던 경우는 null. 또, 구현이 null 치를 지원하고 있는 경우, 반환값 null 는, 이전에 맵으로 키와 null 를 관련지을 수 있고 있던 것을 나타내는 경우도 있다
예외:
UnsupportedOperationException - put 오퍼레이션이 이 맵으로 지원되지 않는 경우
ClassCastException - 지정된 키 또는 값의 클래스가 원인으로, 이 맵에 그것들을 포함할 수 없는 경우
NullPointerException - 지정된 키 또는 값이 null 이며, 이 맵이 null 의 키 또는 값을 허가하지 않는 경우
IllegalArgumentException - 지정된 키 또는 값이 있는 프로퍼티이 원인으로, 이 맵에 그것들을 포함할 수 없는 경우

remove

boolean remove(Object  key,
               Object  value)
지정된 값에 키가 현재 매핑 되고 있는 경우에게만, 그 키의 엔트리를 삭제합니다. 이것은 다음의 기술과 동등합니다.
if (map.containsKey(key) && map.get(key). equals(value)) {
map.remove(key);
return true;
} else return false;
다만, 액션이 원자적으로 실행되는 점이 다릅니다.

파라미터:
key - 지정된 값을 관련지을 수 있는 키
value - 지정된 키에 관련지을 수 있고 있다고 예상되는 값
반환값:
치가 삭제되었을 경우는 true
예외:
UnsupportedOperationException - remove 오퍼레이션이 이 맵으로 지원되지 않는 경우
ClassCastException - 키 또는 값이 맵에 적합하지 않는 형태의 경우 (생략 가능)
NullPointerException - 지정된 키 또는 값이 null 때에, 맵이 null 키나 null 치를 허가하지 않는 경우 (생략 가능)

replace

boolean replace(K  key,
                V  oldValue,
                V  newValue)
지정된 값에 키가 현재 매핑 되고 있는 경우에게만, 그 키의 엔트리를 치환합니다. 이것은 다음의 기술과 동등합니다.
if (map.containsKey(key) && map.get(key). equals(oldValue)) {       map.put(key, newValue);

return true;
} else return false;
다만, 액션이 원자적으로 실행되는 점이 다릅니다.

파라미터:
key - 지정된 값을 관련지을 수 있는 키
oldValue - 지정된 키에 관련지을 수 있고 있다고 예상되는 값
newValue - 지정된 키에 관련지을 수 있는 값
반환값:
치가 치환되었을 경우는 true
예외:
UnsupportedOperationException - put 오퍼레이션이 이 맵으로 지원되지 않는 경우
ClassCastException - 지정된 키 또는 값의 클래스가 원인으로, 이 맵에 그것들을 포함할 수 없는 경우
NullPointerException - 지정된 키 또는 값이 null 이며, 이 맵이 null 의 키 또는 값을 허가하지 않는 경우
IllegalArgumentException - 지정된 키 또는 값이 있는 프로퍼티이 원인으로, 이 맵에 그것들을 포함할 수 없는 경우

replace

V  replace(K  key,
          V  value)
키가 값에 현재 매핑 되고 있는 경우에게만, 그 키의 엔트리를 치환합니다. 이것은 다음의 기술과 동등합니다.
if (map.containsKey(key)) {
return map.put(key, value);
} else return null;
다만, 액션이 원자적으로 실행되는 점이 다릅니다.

파라미터:
key - 지정된 값을 관련지을 수 있는 키
value - 지정된 키에 관련지을 수 있는 값
반환값:
지정된 키에 관련지을 수 있었던 이전의 값. 키의 매핑이 없었던 경우는 null. 또, 구현이 null 치를 지원하고 있는 경우, 반환값 null 는, 이전에 맵으로 키와 null 를 관련지을 수 있고 있던 것을 나타내는 경우도 있다
예외:
UnsupportedOperationException - put 오퍼레이션이 이 맵으로 지원되지 않는 경우
ClassCastException - 지정된 키 또는 값의 클래스가 원인으로, 이 맵에 그것들을 포함할 수 없는 경우
NullPointerException - 지정된 키 또는 값이 null 이며, 이 맵이 null 의 키 또는 값을 허가하지 않는 경우
IllegalArgumentException - 지정된 키 또는 값이 있는 프로퍼티이 원인으로, 이 맵에 그것들을 포함할 수 없는 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.