Share via


IMap 인터페이스

정의

키를 값에 매핑하는 개체입니다.

[Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public interface IMap : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type IMap = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
파생
특성
구현

설명

키를 값에 매핑하는 개체입니다. 맵에는 중복 키가 포함될 수 없습니다. 각 키는 최대 하나의 값에 매핑할 수 있습니다.

이 인터페이스는 인터페이스가 아닌 완전히 추상적인 클래스인 클래스를 대신 Dictionary 합니다.

인터페이스는 Map 맵의 콘텐츠를 키 집합, 값 컬렉션 또는 키-값 매핑 집합으로 볼 수 있는 세 가지 컬렉션 를 제공합니다. 지도의 순서 는 맵의 컬렉션 뷰에서 반복기가 해당 요소를 반환하는 순서로 정의됩니다. 클래스와 같은 TreeMap 일부 맵 구현은 순서를 구체적으로 보장합니다. 클래스와 같은 일부 맵 구현은 HashMap 그렇지 않습니다.

참고: 변경 가능한 개체가 지도 키로 사용되는 경우 주의해야 합니다. 개체가 맵의 키인 동안 비교에 영향을 equals 주는 방식으로 개체 값이 변경되는 경우 맵의 동작은 지정되지 않습니다. 이 금지의 특별한 경우는 지도가 키로 자신을 포함하는 것이 허용되지 않는다는 것입니다. 지도가 값으로 포함되는 것은 허용되지만, 및 hashCode 메서드는 더 이상 이러한 맵에 잘 정의되지 않는 것이 좋습니다equals.

모든 범용 맵 구현 클래스는 빈 맵을 만드는 void(인수 없음) 생성자와 형식의 Map단일 인수가 있는 생성자라는 두 개의 "표준" 생성자를 제공해야 합니다. 이 생성자는 인수와 동일한 키-값 매핑을 사용하여 새 맵을 만듭니다. 실제로 후자의 생성자를 사용하면 모든 맵을 복사하여 원하는 클래스의 동일한 맵을 생성할 수 있습니다. 인터페이스에 생성자를 포함할 수 없으므로 이 권장 사항을 적용할 수 있는 방법은 없지만 JDK의 모든 범용 맵 구현은 준수합니다.

이 인터페이스에 포함된 "파괴적인" 메서드, 즉 작동하는 맵을 수정하는 메서드는 이 맵이 작업을 지원하지 않는 경우 throw UnsupportedOperationException 하도록 지정됩니다. 이 경우 이러한 메서드는 호출이 맵에 영향을 주지 않을 경우 을 throw UnsupportedOperationException 할 수 있지만 필요하지는 않습니다. 예를 들어 수정할 수 없는 맵에서 메서드를 #putAll(Map) 호출하면 매핑이 "겹쳐진" 맵이 비어 있는 경우 예외를 throw할 수 있지만 필요하지는 않습니다.

일부 맵 구현에는 포함될 수 있는 키와 값에 대한 제한이 있습니다. 예를 들어 일부 구현에서는 null 키 및 값을 금지하고 일부는 키 형식에 제한이 있습니다. 부적격 키 또는 값을 삽입하려고 시도하면 선택되지 않은 예외(일반적으로 NullPointerException 또는 ClassCastException)가 throw됩니다. 부적격 키 또는 값이 있는지 쿼리하려고 하면 예외가 throw되거나 단순히 false를 반환할 수 있습니다. 일부 구현은 이전 동작을 나타내고 일부는 후자를 표시합니다. 일반적으로 부적격 키 또는 완료로 인해 부적격 요소가 맵에 삽입되지 않는 값에 대한 작업을 시도하면 예외가 throw되거나 구현 옵션에서 성공할 수 있습니다. 이러한 예외는 이 인터페이스의 사양에서 "선택 사항"으로 표시됩니다.

Collections Framework 인터페이스의 많은 메서드는 메서드 측면에서 Object#equals(Object) equals 정의됩니다. 예를 들어 메서드의 #containsKey(Object) containsKey(Object key) 사양은 "이 맵에 이러한 (key==null ? k==null : key.equals(k))k 에 대한 매핑이 포함된 경우에만 를 반환 true 합니다." 이 사양은 null이 아닌 인수 keyMap.containsKey 사용하여 호출하면 키 k에 대해 호출된다는 것을 암시해서는 안 됩니다key.equals(k). 구현은 두 키의 equals 해시 코드를 먼저 비교하여 호출을 피할 수 있는 최적화를 자유롭게 구현할 수 있습니다. (사양은 Object#hashCode() 같지 않은 해시 코드가 있는 두 개체가 같을 수 없음을 보장합니다.) 일반적으로 다양한 Collections Framework 인터페이스의 구현은 구현자가 적절하다고 판단하는 모든 기본 메서드의 지정된 동작을 Object 자유롭게 활용할 수 있습니다.

지도의 재귀 순회를 수행하는 일부 맵 작업은 맵이 직접 또는 간접적으로 포함된 자체 참조 인스턴스에 대한 예외로 인해 실패할 수 있습니다. 여기에는 , equals()hashCode() 메서드가 clone()toString() 포함됩니다. 구현은 필요에 따라 자체 참조 시나리오를 처리할 수 있지만 대부분의 현재 구현은 그렇지 않습니다.

<h2>"수정할 수 없음">수정할 수 없는 지도</h2>

, Map#ofEntries(Map.Entry...) Map.ofEntriesMap#copyOf Map.copyOf 정적 팩터리 메서드는 Map#of() Map.of수정할 수 없는 맵을 만드는 편리한 방법을 제공합니다. Map 이러한 메서드에서 만든 인스턴스에는 다음과 같은 특성이 있습니다.

<ul><li>그들은 i>unmodifiable</i>입니다<. 키와 값은 추가, 제거 또는 업데이트할 수 없습니다. 맵에서 모든 변경자 메서드를 호출하면 항상 UnsupportedOperationException throw됩니다. 그러나 포함된 키 또는 값 자체가 변경 가능한 경우 맵이 일관되지 않게 동작하거나 해당 내용이 변경되는 것처럼 보일 수 있습니다. <li>키와 값을 허용하지 null 않습니다. 키 또는 값을 사용하여 만들 null 려고 하면 이 발생합니다 NullPointerException. <li>모든 키와 값을 직렬화할 수 있는 경우 직렬화할 수 있습니다. <li>생성 시 중복 키를 거부합니다. 정적 팩터리 메서드에 전달된 중복 키의 결과는 입니다 IllegalArgumentException. <li>매핑의 반복 순서는 지정되지 않으며 변경될 수 있습니다. <li>값 기반입니다. 프로그래머는 #equals(Object)인 인스턴스를 서로 교환 가능한 인스턴스로 취급해야 하며 동기화에 사용하면 안 되거나 예측할 수 없는 동작이 발생할 수 있습니다. 예를 들어 향후 릴리스에서는 동기화가 실패할 수 있습니다. 호출자는 반환된 인스턴스의 ID를 가정하지 않아야 합니다. 팩터리에서는 새 인스턴스를 만들거나 기존 인스턴스를 다시 사용할 수 있습니다. <li>직렬화된 양식 페이지에 지정된 대로 serialize 됩니다. </ul>

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

1.2에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.Map.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
IsEmpty

이 맵이 비어 있는지 여부를 반환합니다.

JniIdentityHashCode

java.lang.System.identityHashCode() 래핑된 instance 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Clear()

이 맵에서 모든 매핑을 제거합니다(선택적 작업).

Compute(Object, IBiFunction)

지정된 키와 현재 매핑된 값에 대한 매핑을 계산하려고 시도합니다(또는 null 현재 매핑이 없는 경우).

ComputeIfAbsent(Object, IFunction)

지정된 키가 값과 아직 연결되지 않았거나 에 매핑 null된 경우 는 지정된 매핑 함수를 사용하여 해당 값을 계산하려고 시도하고 가 아닌 한 null이 맵에 입력합니다.

ComputeIfPresent(Object, IBiFunction)

지정된 키의 값이 있고 null이 아닌 경우 키와 현재 매핑된 값이 지정된 경우 새 매핑을 계산하려고 시도합니다.

ContainsKey(Object)

이 맵에 지정된 키에 대한 매핑이 포함되어 있으면 를 반환 true 합니다.

ContainsValue(Object)

이 맵이 하나 이상의 키를 지정된 값에 매핑하는 경우 를 반환 true 합니다.

CopyOf(IDictionary)

지정된 맵의 항목을 포함하는 수정할 수 없는 맵을 반환합니다.

Disposed()

instance 삭제되었을 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 것도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Entry(Object, Object)

지정된 키와 값을 포함하는 변경할 수 없는 Entry 를 반환합니다.

EntrySet()

Set 이 맵에 포함된 매핑의 보기를 반환합니다.

Equals(Object)

지정된 개체를 이 맵과 비교하여 같은지 확인합니다.

Finalized()

instance 완료되면 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
ForEach(IBiConsumer)

모든 항목이 처리되거나 작업이 예외를 throw할 때까지 이 맵의 각 항목에 대해 지정된 작업을 수행합니다.

Get(Object)

지정된 키가 매핑되는 값을 반환하거나 null 이 맵에 키에 대한 매핑이 없는 경우 를 반환합니다.

GetHashCode()

이 맵의 해시 코드 값을 반환합니다.

GetOrDefault(Object, Object)

지정된 키가 매핑되는 값을 반환하거나 defaultValue 이 맵에 키에 대한 매핑이 없는 경우 를 반환합니다.

KeySet()

Set 이 맵에 포함된 키의 보기를 반환합니다.

Merge(Object, Object, IBiFunction)

지정된 키가 값과 아직 연결되지 않았거나 null과 연결된 경우 지정된 null이 아닌 값과 연결합니다.

Of()

매핑이 0인 수정할 수 없는 맵을 반환합니다.

Of(Object, Object)

단일 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object)

두 개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object)

세 개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object)

네 개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

5개의 매핑이 포함된 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

6개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

7개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

8개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

9개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

10개의 매핑을 포함하는 수정할 수 없는 맵을 반환합니다.

OfEntries(IMapEntry[])

지정된 항목에서 추출된 키와 값을 포함하는 변경할 수 없는 맵을 반환합니다.

Put(Object, Object)

지정된 값을 이 맵의 지정된 키와 연결합니다(선택적 작업).

PutAll(IDictionary)

지정된 맵의 모든 매핑을 이 맵에 복사합니다(선택적 작업).

PutIfAbsent(Object, Object)

지정된 키가 값과 아직 연결되지 않았거나 에 매핑 null된 경우 지정된 값과 연결하고 를 반환 null합니다. 그렇지 않으면 현재 값이 반환됩니다.

Remove(Object)

키에 대한 매핑이 있는 경우 이 맵에서 제거합니다(선택적 작업).

Remove(Object, Object)

지정된 키에 대한 항목이 현재 지정된 값에 매핑된 경우에만 제거합니다.

Replace(Object, Object)

지정된 키에 대한 항목을 현재 일부 값에 매핑된 경우에만 바꿉니다.

Replace(Object, Object, Object)

현재 지정된 값에 매핑된 경우에만 지정된 키의 항목을 바꿉니다.

ReplaceAll(IBiFunction)

모든 항목이 처리되거나 함수가 예외를 throw할 때까지 각 항목의 값을 해당 항목에서 지정된 함수를 호출한 결과로 바꿉니다.

SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

키를 값에 매핑하는 개체입니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
Size()

이 맵의 키-값 매핑 수를 반환합니다.

UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)
Values()

Collection 이 맵에 포함된 값의 뷰를 반환합니다.

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

키를 값에 매핑하는 개체입니다.

GetJniTypeName(IJavaPeerable)

키를 값에 매핑하는 개체입니다.

적용 대상