패키지 io.realm

클래스 RealmMap<K,​V>

  • 유형 매개변수:
    K - 이 맵에 저장된 키의 유형
    V - 이 맵에 저장된 값의 유형
    구현된 모든 인터페이스:
    io.realm.internal.Freezable<RealmMap<K,​V>>, io.realm.internal.ManageableObject, Map<K,​V>
    직접적으로 알려진 하위 클래스:
    RealmDictionary

    public abstract class RealmMap<K,​V>
    extends Object
    implements Map<K,​V>, io.realm.internal.ManageableObject, io.realm.internal.Freezable<RealmMap<K,​V>>
    RealmMap is used to map keys to values. RealmMap은 중복 키를 포함할 수 없으며 각 키는 최대 하나의 값에 매핑할 수 있습니다. RealmMap은 null 키를 가질 수 없지만 null 값은 가질 수 있습니다.

    RealmList와 마찬가지로 RealmDictionary는 managed 모드와 비관리 모드에서 작동할 수 있습니다. In managed mode a RealmDictionary persists all its contents inside a Realm whereas in unmanaged mode it functions like a HashMap.

    managed RealmDictionaries는 Realm에서만 만들 수 있으며 기본 Realm이 업데이트될 때마다 해당 콘텐츠가 자동으로 업데이트됩니다. managed RealmDictionaries는 RealmObject 의 필드를 가리키는 게터를 사용해서만 액세스할 수 있습니다.

    Unmanaged RealmDictionaries는 사용자가 만들 수 있으며 managed RealmObject와 unmanaged RealmObject를 모두 포함할 수 있습니다. 이는 GSON과 같은 JSON 디시리얼라이저 또는 클래스에 값을 삽입하는 다른 프레임워크를 처리할 때 유용합니다. 관리되지 않는 RealmMap은 Realm.copyToRealm(Iterable, ImportFlag...) 메서드를 사용하여 Realm에 추가할 수 있습니다.

    • 메서드 세부 정보

      • isManaged

        public boolean isManaged()
        다음에 의해 지정됩니다:
        isManaged 인터페이스에서 io.realm.internal.ManageableObject
      • isValid

        공개 부울 isValid()
        다음에 의해 지정됩니다:
        isValid 인터페이스에서 io.realm.internal.ManageableObject
      • IsFrozen

        공개 부울 isFrozen()
        다음에 의해 지정됩니다:
        isFrozen 인터페이스에서 io.realm.internal.ManageableObject
      • size

        public int size()
        다음에 의해 지정됩니다:
        size 인터페이스에서 Map<K,​V>
      • isEmpty

        공개 부울 isEmpty()
        다음에 의해 지정됩니다:
        isEmpty 인터페이스에서 Map<K,​V>
      • get

        public V get(객체 키)
        다음에 의해 지정됩니다:
        get 인터페이스에서 Map<K,​V>
      • put

        public V put​(K 키,
                     @Nullable
                     V 값)
        다음에 의해 지정됩니다:
        put 인터페이스에서 Map<K,​V>
      • 제거

        공개 V 제거(객체 키)
        다음에 의해 지정됩니다:
        remove 인터페이스에서 Map<K,​V>
      • putAll

        public void putAll​(Map<? extends K,​? extends V> m)
        다음에 의해 지정됩니다:
        putAll 인터페이스에서 Map<K,​V>
      • 지우기

        public void clear()
        다음에 의해 지정됩니다:
        clear 인터페이스에서 Map<K,​V>
      • keySet

        public Set<K> keySet()
        다음에 의해 지정됩니다:
        keySet 인터페이스에서 Map<K,​V>
      • values

        public Collection<V> values()
        다음에 의해 지정됩니다:
        values 인터페이스에서 Map<K,​V>
      • 동결

        public RealmMap<K,​V> freeze()
        다음에 의해 지정됩니다:
        freeze 인터페이스에서 io.realm.internal.Freezable<K>
      • addChangeListener

        public void addChangeListener​(MapChangeListener<K,​V> listener)
        RealmMap 에 변경 리스너를 추가합니다.

        변경 리스너를 등록해도 기본 RealmMap이 가비지 수집되는 것을 방지할 수는 없습니다. RealmMap이 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

         
         public class MyActivity extends Activity {
        
             private RealmMap<String, Dog> dogs; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               dogs = realm.where(Person.class).findFirst().getDogs();
               dogs.addChangeListener(new MapChangeListener<String, Dog>() {
                   \@Override
                   public void onChange(RealmMap<String, Dog> map, MapChangeSet<String> changeSet) {
                       // React to change
                   }
               });
             }
         }
         
         
        매개변수:
        listener - 알림을 받을 변경 리스너입니다.
        예외 처리:
        IllegalArgumentException - 변경 리스너가 null 인 경우
        IllegalStateException - 이벤트 루프가 아닌 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.
      • addChangeListener

        public void addChangeListener​(RealmChangeListener<RealmMap<K,​V>> listener)
        RealmMap 에 변경 리스너를 추가합니다.

        변경 리스너를 등록해도 기본 RealmMap이 가비지 수집되는 것을 방지할 수는 없습니다. RealmMap이 가비지 수집되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

         
         public class MyActivity extends Activity {
        
             private RealmMap<String, Dog> dogs; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               dogs = realm.where(Person.class).findFirst().getDogs();
               dogs.addChangeListener(new RealmChangeListener<RealmMap<String, Dog>>() {
                   \@Override
                   public void onChange(RealmMap<String, Dog> map) {
                       // React to change
                   }
               });
             }
         }
         
         
        매개변수:
        listener - 알림을 받을 변경 리스너입니다.
        예외 처리:
        IllegalArgumentException - 변경 리스너가 null 인 경우
        IllegalStateException - 이벤트 루프가 아닌 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.
        다음도 참조하세요.
        RealmChangeListener
      • removeChangeListener

        public void removeChangeListener​(MapChangeListener<K,​V> listener)
        지정된 변경 리스너를 제거합니다.
        매개변수:
        listener - 제거할 변경 리스너입니다.
        예외 처리:
        IllegalArgumentException - 변경 리스너가 null 인 경우
        IllegalStateException - 이벤트 루프가 아닌 스레드에서 리스너를 제거하려고 하는 경우.
      • 모든 변경 리스너 제거

        public void removeAllChangeListeners()
        모든 사용자 정의 변경 수신기를 제거합니다.
        예외 처리:
        IllegalStateException - 이벤트 루프가 아닌 스레드에서 리스너를 제거하려고 하는 경우.
        다음도 참조하세요.
        RealmChangeListener