지도 소개
키를 값의 객체에 매핑하십시오. 맵에는 중복 키를 포함 할 수 없습니다. 각 키는 최대 하나의 값에만 매핑 될 수 있습니다. 이 인터페이스는 인터페이스가 아닌 전적으로 추상 클래스 인 사전 클래스를 대체합니다.
맵 인터페이스는 키 세트, 값 세트 또는 키 값 매핑 관계 세트 형식으로 맵의 내용을 볼 수있는 세 가지 수집보기를 제공합니다. 매핑 순서는 반복자가 맵의 수집보기에서 요소를 반환하는 순서로 정의됩니다. 일부 매핑 구현은 Treemap 클래스와 같은 주문을 명시 적으로 보장합니다. 다른 사람들은 해시 맵 클래스와 같은 주문을 보장하지 않습니다.
참고 : 맵핑 키로 변한 물체를 사용할 때는 추가주의를 기울여야합니다. 객체가 맵의 키 인 경우, 객체의 값이 평등 비교에 영향을 미치는 방식으로 변경되면 맵의 동작이 불확실합니다. 이것이 금지하는 특별한 경우는지도가 자체가 키로 포함되지 않기 때문입니다. 맵은 자체를 값으로 포함시킬 수 있지만 조심하십시오. 평등 및 해시 코드 방법의 정의는 더 이상 그러한 맵에서 명시 적이 아닙니다.
모든 일반적인 매핑 구현 클래스는 두 개의 "표준"생성자를 제공해야합니다. 빈 맵을 생성하기위한 무효 (매개 변수 없음) 생성자; 단일 맵 유형 매개 변수가있는 생성자가 매개 변수와 동일한 키 값 매핑 관계를 갖는 새 맵을 만듭니다. 실제로, 후자의 생성자는 사용자가 임의의 맵을 복사하여 필요한 클래스의 동등한 맵을 생성 할 수 있도록합니다. 이 제안은 (인터페이스에 생성자를 포함 할 수 없기 때문에) 시행 할 수는 없지만 JDK의 모든 일반적인 매핑 구현이이를 따릅니다.
이 인터페이스에 포함 된 "파괴"메소드는 작동의 매핑을 수정 하고이 매핑이 작동을 지원하지 않으면 이러한 메소드가 지원되지 않은 상태에서 발생합니다. 그렇다면, 이러한 방법은 호출이 매핑에 대해 유효하지 않을 때 지원되지 않은 지출을 던질 수 있지만 필요하지는 않습니다. 예를 들어, 매핑 관계가 "겹치는"수정되지 않은 맵이 비어있는 경우, putall (map) 메소드를 맵에 호출 할 때 예외가 발생할 수 있습니다 (그러나 필요하지 않음).
일부 매핑 구현에는 키와 포함될 수있는 값에 제한이 있습니다. 예를 들어, 일부 구현은 널 키와 값을 금지하고 다른 구현은 키 유형에 대한 제한 사항이 있습니다. 자격이없는 키나 값을 삽입하려고 시도하면 선택되지 않은 예외, 일반적으로 nullpointerexception 또는 classcastException이 발생합니다. 자격이없는 키나 값이 예외를 던질 수 있는지 여부를 쿼리하려고 시도하거나 False를 반환합니다. 일부 구현은 이전의 행동을 보여주고 다른 구현은 후자를 보여줄 것입니다. 일반적으로, 자격이없는 키 또는 값에 대한 작업을 수행하려고 시도하고 작업을 완료하면 자격이없는 요소가 맵에 삽입되지 않으면 구현 자체에 따라 예외가 발생하거나 작업이 성공할 수 있습니다. 이러한 예외는이 인터페이스의 사양에서 "선택 사항"으로 표시됩니다.
이 인터페이스는 Java Collections Framework의 회원입니다.
컬렉션 프레임 워크 인터페이스의 많은 방법은 Equals 메소드에 따라 정의됩니다. 예를 들어, 포함 된 키 (객체 키) 메소드의 사양은 다음과 같이 말합니다. 예를 들어, 먼저 두 키의 해시 코드를 비교할 수 있습니다 (Object.hashCode () 사양은 일반적으로 해당 코드가 동일하지 않도록합니다.
일반적인 작동 지침 void clear ()
이 맵에서 모든 매핑 관계를 제거하십시오 (선택적 조치).
부울은 키 (객체 키)
이 맵에 지정된 키에 대한 매핑 관계가 포함 된 경우 true를 반환합니다.
부울은 value (객체 값)를 포함합니다.
이 맵이 하나 이상의 키를 지정된 값에 매핑하는 경우 true를 반환합니다.
set <map.entry <k, v >> entryset ()
이 맵에 포함 된 매핑 관계의 설정보기를 반환합니다.
부울 평등 (Object O)
지정된 객체 가이 맵과 같은지 비교하십시오.
v get (객체 키)
지정된 키에 의해 매핑 된 값을 반환합니다. 이 맵에 키의 매핑 관계가 포함되어 있지 않으면 NULL을 반환하십시오.
int hashcode ()
이 맵의 해시 코드 값을 반환합니다.
부울 isempty ()
이 맵에 키 가치 매핑 관계가 포함되어 있지 않으면 true를 반환하십시오.
<k> Keyset ()
이 맵에 포함 된 키의 설정보기를 반환합니다.
v put (k 키, v 값)
지정된 값을이 맵에서 지정된 키와 연결하십시오 (선택 사항 조치).
void putall (map <? extends k,? extends v> m)
지정된 매핑 에서이 맵에 모든 매핑 관계를 복사하십시오 (선택 사항 조치).
v 제거 (객체 키)
키에 대한 매핑 관계가있는 경우이 맵에서 제거됩니다 (선택 사항).
int size ()
이 맵에서 키 값 매핑 관계를 반환합니다.
수집 <v> 값 ()
이 맵에 포함 된 값의 수집보기를 반환합니다.
지도의 일반적인 사용
1.지도 선언 :
코드 사본은 다음과 같습니다.
지도 맵 = new Hashmap ();
2. 값을지도에 넣습니다. 참고 :지도는 다음과 같은 키 값 형태로 저장됩니다.
코드 사본은 다음과 같습니다.
map.put ( "sa", "dd");
3.지도에서 값을 가져옵니다.
코드 사본은 다음과 같습니다.
String str = map.get ( "SA"). TOSTRING,
결과는 : str = "dd '
4.지도를 통해 반복하고 키와 가치를 얻습니다.
코드 사본은 다음과 같습니다.
MAP M = NEW HASHMAP ();
for (object obj : map.keyset ()) {
개체 값 = map.get (obj);
}