Java의 Map 사용 설명
키를 값의 객체에 매핑합니다.맵에 중복된 키를 포함할 수 없습니다.키당 최대 한 개의 값만 매핑할 수 있습니다.이 인터페이스는 Dictionary 클래스를 대체하고 후자는 완전히 추상적인 클래스이지 인터페이스가 아니다.
맵 인터페이스는 세 가지collection 보기를 제공합니다. 키 집합, 값 집합 또는 키 - 값 맵 관계 집합의 형식으로 어떤 맵의 내용을 볼 수 있습니다.맵 순서는 반복기가 맵의collection 보기에서 원소를 되돌려주는 순서로 정의됩니다.일부 맵은 TreeMap 클래스와 같은 순서를 명확하게 보장합니다.다른 매핑 구현은 HashMap 클래스와 같은 순서를 보장하지 않습니다.
참고: 소프트 객체를 맵키로 사용할 때는 주의해야 합니다.대상이 맵의 어떤 키일 때, equals 비교에 영향을 주는 방식으로 대상의 값을 변경하면, 맵의 행위는 확실하지 않습니다.이 금지된 특수한 상황은 어떤 맵이 자신을 키로 포함하는 것을 허락하지 않는다는 것이다.어떤 맵이 자신을 값으로 포함하는 것을 허용하지만, 이러한 맵에 equals와hashCode 방법의 정의는 더 이상 명확하지 않습니다.
모든 통용되는 맵 구현 클래스는 두 가지'표준적인'구조 방법을 제공해야 한다. 하나의void(인자 없음) 구조 방법으로 빈 맵을 만드는 데 사용된다.하나는 하나의 맵 유형 매개 변수가 있는 구조 방법으로 매개 변수와 같은 키-값 매핑 관계를 가진 새로운 매핑을 만드는 데 사용됩니다.실제로 다음 구조 방법은 사용자가 임의의 맵을 복제하여 필요한 종류의 일등가 맵을 생성할 수 있도록 한다.이 제안은 강제로 실행할 수 없지만 (인터페이스에 구성 방법이 포함되지 않기 때문에) JDK의 모든 일반적인 맵은 이를 따릅니다.
이 인터페이스에 포함된'파괴'방법은 동작의 맵을 수정할 수 있습니다. 이 맵이 이 동작을 지원하지 않으면 UnsupportedOperationException을 던집니다.만약 그렇다면, 맵이 올바르지 않을 때, 이 방법들은 UnsupportedOperationException을 던질 수 있습니다.예를 들어 수정할 수 없는 맵 (맵 관계가 중첩됨) 이 비어 있으면, 맵 방법을 호출할 때 이상을 던질 수 있습니다.
일부 맵은 포함될 수 있는 키와 값을 제한합니다.예를 들어, 어떤 것은null 키와 값을 금지하고, 다른 것은null 키의 유형에 제한이 있다.불합격한 키나 값을 삽입하면 검사되지 않은 이상이 발생합니다. 보통 Null PointerException이나 ClassCastException입니다.불합격한 키나 값이 이상을 던지거나false로 되돌아올 수 있는지 확인하려면;어떤 실현은 앞의 행동을 나타내고, 다른 실현은 뒤의 행동을 나타낸다.일반적으로 불합격한 키나 값에 대해 조작을 시도하고 이 조작의 완성으로 인해 불합격한 요소가 맵에 삽입되지 않을 때 이상을 던질 수도 있고 조작에 성공할 수도 있다. 이것은 실현 자체에 달려 있다.이러한 예외는 이 인터페이스의 규범에 옵션으로 표시됩니다.
이 인터페이스는 Java Collections Framework의 구성원입니다.
Collections Framework 인터페이스의 많은 방법은 equals 방법에 따라 정의됩니다.예를 들어containsKey(Object key) 방법의 규범에는'이 맵이 만족(key==null?k=null:key.equals(k)에 대한 키 k의 맵 관계를 포함할 때만 true로 되돌려줍니다'라고 적혀 있다.이 규범을 비공식 매개 변수 키가 있는 맵을 호출하는 것으로 해석해서는 안 됩니다.containsKey는 임의의 키 k에 키를 호출합니다.equals(k).equals를 호출하지 않도록 임의로 최적화할 수 있습니다. 예를 들어 먼저 두 키의 해시 코드(Object.hashCode () 규범을 비교하여 해시 코드가 같지 않은 두 대상이 같지 않을 것을 보장합니다.일반적으로 실현자가 적합하다고 생각하면 각종 Collections Framework 인터페이스의 실현은 밑바닥 Object 방법의 지정된 행위를 마음대로 이용할 수 있다.
공통 작업 설명
void clear()
이 맵에서 모든 맵 관계를 제거합니다(선택 사항).
boolean containsKey(Object key)
이 맵이 지정한 키의 맵 관계를 포함하면true를 되돌려줍니다.
boolean containsValue(Object value)
이 맵이 지정한 값에 하나 이상의 키를 비추면true로 돌아갑니다.
Set
이 맵에 포함된 맵 관계식의 Set 보기를 되돌려줍니다.
boolean equals(Object o)
지정된 객체가 이 매핑과 동일한지 비교합니다.
V get(Object key)
지정한 키가 비치는 값을 되돌려주기;이 맵이 키의 맵 관계를 포함하지 않으면null로 돌아갑니다.
int hashCode()
이 맵의 해시 값을 되돌려줍니다.
boolean isEmpty()
이 맵에 키-값 맵 관계가 포함되지 않으면true로 돌아갑니다.
Set
이 맵에 포함된 키의 Set 보기를 되돌려줍니다.
V put(K key, V value)
지정한 값을 이 맵의 지정한 키와 연결합니다(선택 사항).
void putAll(Map m)
지정한 맵에서 모든 맵 관계를 이 맵에 복사합니다(선택 사항).
V remove(Object key)
키의 매핑 관계가 있으면 이 매핑에서 제거합니다(선택 사항).
int size()
이 맵의 키 - 값 맵 관계식을 되돌려줍니다.
Collection
이 맵에 포함된 값의 Collection 뷰를 반환합니다.
맵의 일반 사용 방법
1. 맵 설명:
Map map = new HashMap();
이.맵에 값을 넣습니다. 주의: 맵은 키-value 형식으로 저장됩니다. 예를 들어
map.put("sa","dd");
삼.맵에서 값 가져오기:
String str = map.get("sa").toString,
결과:str ="dd"사.맵을 반복하여 키와 value를 가져옵니다.
Map m= new HashMap();
for(Object obj : map.keySet()){
Object value = map.get(obj );
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.