I. 서론;
주요의 Map.Entry 간단한 소개와 ConcurrentHashMap의 사용은하지 심도 구현은 소스를 전문;
의 Map.Entry
상기 entrySet 맵 오브젝트가있어서 각 개체의 집합을 얻기의 Map.Entry 객체 인터페이스는 키 맵의 모음 반환지도 자바 인터페이스와 내부 인터페이스의 Map.Entry 맵이고 / 값 쌍과 키는 상기 방법의 Map.Entry 설정 값 맵에 의해 수득 될 수있다;
* 개체하는 getKey은 () : 키워드의 항목을 반환
* 객체 getValue () : 항목의 값을 돌려줍니다
* 개체의 setValue (개체 값) : 값 관련 이미지가 값을 변경하고 이전 값을 반환;
HashMap에, 해시, ConcurrentHashMap의
다음은 세 세트의 저장 키를 키 - 값 쌍과, 상기 키는 개체 값이며, 복제 키를 포함 할 수 있지만, 중복되는 값을 포함 할 수있는 것을 특징으로한다.
* 의 HashMap : 비 스레드 안전; HashMap의 해시 테이블 제거 방법을 포함하고으로써 containsValue containsKey 대체, 해시 테이블 안으로; 키 값은 널 값이 나타날 수
* 해시 테이블 ,으로써 containsValue 세 containsKey를 해시 테이블에 포함 된 유지; 스레드 안전 : 상기와 같은 특징을 포함으로써 containsValue있어서, 키와 값은 널 값이다 허용되지
*가 ConcurrentHashMap의 안전하고 효율적인 스레드 멀티 스레드 권장, 키와 값을 널 값은 허용되지이다 :
둘째, 시험 샘플;
1 공용 클래스 MapEntryTest { 2 3 공공 정적 무효 메인 (문자열 []에 args) { 4 // TODO 자동 생성 방법 스터브 5 지도 <문자열, 문자열>지도 = 새 의 HashMap <문자열, 문자열> (); 6 map.put ( "앤디", "90" ); 7 map.put ( "토니", "80" ); 8 map.put ( "제이슨", "96" ); 9 대 (의 Map.Entry <문자열, 문자열> {map.entrySet () 엔트리) 10 에서 System.out.println ( "키 = 「+ 항목.entry.getValue ()) . (11) IF (entry.getKey () 등호 ( "토니." )) { 12은 Entry.setValue ( "100"); // 값을 변경 값의 이전 값 리턴; 13 } 14 } 15 에서 System.out.println (map.get 등 ( "토니" )); 16 } . 17 (18)이다 }
1 공용 클래스 ConcurrentHashMapTest { 2 3 공공 정적 무효 메인 (문자열 []에 args) { 4 // TODO 자동 생성 방법 스터브 5 지도 <문자열, 문자열>지도 = 새 의 HashMap <문자열, 문자열> (); 6 map.put ( "앤디", "90" ); 7 map.put ( 널 , 널 ); 8 에서 System.out.println (map.size ()); 9 10 지도 <문자열, 문자열> = MAP2 새로운 ConcurrentHashMap의 <문자열, 문자열> (); (11) map2.put ( "토니", "80" ); (12) 에서 System.out.println (map2.get ( "토니" )); 13 14 지도 <문자열, 문자열> = map3 체크 새로운 해시 테이블 <문자열, 문자열> (); 15 map3.put ( "잭", "20" ); (16) 에서 System.out.println (map3.get ( "잭" )); 17 } 18 19 }