패키지 io.realm

클래스 RealmList<E>

  • 유형 매개변수:
    E - 목록에 있는 객체의 클래스입니다.
    구현된 모든 인터페이스:
    io.realm.internal.Freezable<RealmCollection<E>>, io.realm.internal.ManageableObject, OrderedRealmCollection<E>, RealmCollection<E>, Iterable<E>, Collection<E>, List<E>

    public class RealmList<E>
    extends AbstractList<E>
    implements OrderedRealmCollection<E>
    RealmList는 RealmObject 에서 일대다 관계를 모델링하는 데 사용됩니다. RealmList에는 managed 모드와 비관리 모드, 이렇게 두 가지 모드가 있습니다. managed 모드에서는 모든 객체가 Realm 내에 유지되지만 관리되지 않는 모드에서는 일반 ArrayList로 작동합니다.

    Realm만이 managed RealmList를 만들 수 있습니다. managed RealmList는 기본 Realm이 업데이트될 때마다 콘텐츠를 자동으로 업데이트하며 RealmObject 의 게터를 사용해서만 액세스할 수 있습니다.

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

    RealmListInteger.MAX_VALUE 보다 더 많은 요소를 포함할 수 있습니다. 이 경우 처음 Integer.MAX_VALUE 요소에만 액세스할 수 있습니다.

    • 필드 세부 정보

      • baseRealm

        public final io.realm.BaseRealm baseRealm
        이 목록이 있는 BaseRealm 인스턴스입니다.

        경고: 이 필드는 내부용으로만 노출되며 사용해서는 안 됩니다.

    • 생성자 세부 정보

      • RealmList

        public RealmList()
        요소가 Realm에 의해 제어되지 않는 비관리 모드에서 RealmList를 만듭니다. 이렇게 하면 RealmList가 효과적으로 ArrayList 작동하게 되며 이 상태의 객체를 쿼리할 수 없습니다.

        Realm.copyToRealm(Iterable, ImportFlag...) 을(를) 사용하여 Realm에서 해당 요소를 올바르게 유지합니다.

      • RealmList

        public RealmList​(E... 객체)
        초기 요소 목록을 사용하여 비관리 모드에서 RealmList를 만듭니다. 비관리 모드의 RealmList는 ArrayList 으로 작동하며 이 상태의 객체를 쿼리할 수 없습니다.

        Realm.copyToRealm(Iterable, ImportFlag...) 를 사용하여 Realm의 모든 관리되지 않는 요소를 올바르게 유지합니다.

        매개변수:
        objects - 목록의 초기 객체.
    • 메서드 세부 정보

      • isValid

        공개 부울 isValid()
        collection이 여전히 사용하기에 유효한지, 즉 Realm 인스턴스가 닫히지 않은지 확인합니다. 관리되지 않는 collection에 대해서는 항상 true 을(를) 반환합니다.
        다음에 의해 지정됩니다:
        isValid 인터페이스에서 io.realm.internal.ManageableObject
        다음에 의해 지정됩니다:
        isValid 인터페이스에서 RealmCollection<E>
        반환합니다:
        true 사용하기에 여전히 유효한 경우 또는 관리되지 않는 collection을 사용하는 경우, 그렇지 않으면 false 를 반환합니다.
      • 동결

        public RealmList<E> freeze()
        다음에 의해 지정됩니다:
        freeze 인터페이스에서 io.realm.internal.Freezable<E>
      • IsFrozen

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

        public boolean isManaged()
        collection이 Realm에서 managed 확인합니다. managed collection은 기본 Realm 파일의 데이터를 감싸는 래퍼에 불과합니다. 이벤트 루프 스레드에서 managed collection은 실시간으로 업데이트되어 항상 최신 데이터를 점합니다. managed collection은 스레드 제한되어 있으므로 collection을 만든 다른 스레드에서 액세스할 수 없습니다.

        이 메서드가 false 을(를) 반환하면 collection이 관리되지 않는 것입니다. 관리되지 않는 collection은 일반적인 Java collection이므로 실시간 업데이트가 제공되지 않습니다.

        다음에 의해 지정됩니다:
        isManaged 인터페이스에서 io.realm.internal.ManageableObject
        다음에 의해 지정됩니다:
        isManaged 인터페이스에서 RealmCollection<E>
        반환합니다:
        true managed RealmCollection 인 경우 그렇지 않으면 false 를 반환합니다.
      • 추가

        public void add​(int location,
                        @Nullable
                        E element)
        이 목록의 지정된 위치에 지정된 객체를 삽입합니다. 객체는 지정된 위치에 있는 이전 요소 앞에 삽입됩니다. 위치가 이 목록의 크기와 같으면 객체가 끝에 추가됩니다.
        1. 관리되지 않는 RealmLists: 관리되는 객체와 관리되지 않는 객체를 모두 추가할 수 있습니다. 관리되지 않는 RealmList에 managed 객체를 추가하는 경우 나중에 Realm.copyToRealm(RealmModel, ImportFlag...) 을(를) 사용하면 해당 객체가 Realm에 다시 복사되지 않습니다.
        2. managed RealmList: 이미 managed RealmList에 관리되지 않는 객체를 추가할 수 있습니다. 이 경우 객체는 Realm.copyToRealm(RealmModel, ImportFlag...) 또는 기본 키가 있는 경우 Realm.copyToRealmOrUpdate(RealmModel, ImportFlag...) 를 사용하여 Realm에 투명하게 복사됩니다.
        다음에 의해 지정됩니다:
        add 인터페이스에서 List<E>
        재정의:
        add 수업 중 AbstractList<E>
        매개변수:
        location - 삽입할 인덱스입니다.
        element - 추가할 요소입니다.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 container 객체가 제거된 경우.
        IndexOutOfBoundsException - location < 0 || location > size() 인 경우.
      • 추가

        public boolean add​(@Nullable
                           E 객체)
        지정된 객체를 이 목록의 끝에 추가합니다.
        1. 관리되지 않는 RealmLists: 관리되는 객체와 관리되지 않는 객체를 모두 추가할 수 있습니다. 관리되지 않는 RealmList에 managed 객체를 추가하는 경우 나중에 Realm.copyToRealm(RealmModel, ImportFlag...) 을(를) 사용하면 해당 객체가 Realm에 다시 복사되지 않습니다.
        2. managed RealmList: 이미 managed RealmList에 관리되지 않는 객체를 추가할 수 있습니다. 이 경우 객체는 Realm.copyToRealm(RealmModel, ImportFlag...) 또는 기본 키가 있는 경우 Realm.copyToRealmOrUpdate(RealmModel, ImportFlag...) 를 사용하여 Realm에 투명하게 복사됩니다.
        다음에 의해 지정됩니다:
        add 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        add 인터페이스에서 List<E>
        재정의:
        add 수업 중 AbstractList<E>
        매개변수:
        object - 추가할 객체입니다.
        반환합니다:
        항상 true.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
      • 세트

        공용 E 세트​(int 위치,
                     @Nullable
                     E 객체)
        이 목록의 지정된 위치에 있는 요소를 지정된 객체로 바꿉니다.
        1. 관리되지 않는 RealmLists: 관리되는 객체와 관리되지 않는 객체를 모두 추가할 수 있습니다. 관리되지 않는 RealmList에 managed 객체를 추가하는 경우 나중에 Realm.copyToRealm(RealmModel, ImportFlag...) 을(를) 사용하면 해당 객체가 Realm에 다시 복사되지 않습니다.
        2. managed RealmList: 이미 managed RealmList에 관리되지 않는 객체를 추가할 수 있습니다. 이 경우 객체는 Realm.copyToRealm(RealmModel, ImportFlag...) 또는 기본 키가 있는 경우 Realm.copyToRealmOrUpdate(RealmModel, ImportFlag...) 를 사용하여 Realm에 투명하게 복사됩니다.
        다음에 의해 지정됩니다:
        set 인터페이스에서 List<E>
        재정의:
        set 수업 중 AbstractList<E>
        매개변수:
        location - 지정된 객체를 넣을 인덱스입니다.
        object - 추가할 객체입니다.
        반환합니다:
        인덱스의 이전 요소.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
        IndexOutOfBoundsException - location < 0 || location >= size() 인 경우.
      • 이동

        public void move​(int oldPos,
                         int newPos)
        고정된 크기의 목록을 유지하면서 객체를 한 위치에서 다른 위치로 이동합니다. RealmObject가 이동되어 null 값이 도입되지 않습니다.
        매개변수:
        oldPos - 이동할 RealmObject의 인덱스입니다.
        newPos - 대상 위치. newPos < oldPos이면 해당 위치의 객체가 오른쪽으로 이동합니다. oldPos < newPos, indexes > oldPos인 경우 왼쪽으로 한 번 이동합니다.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
        IndexOutOfBoundsException - 위치가 [0, size()]를 벗어나는 경우.
      • 제거

        공개 E 제거(int 위치)
        이 목록에서 지정된 위치에 있는 객체를 제거합니다.
        다음에 의해 지정됩니다:
        remove 인터페이스에서 List<E>
        재정의:
        remove 수업 중 AbstractList<E>
        매개변수:
        location - 제거할 객체의 인덱스입니다.
        반환합니다:
        제거된 객체입니다.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
        IndexOutOfBoundsException - location < 0 || location >= size() 인 경우.
      • 제거

        public boolean remove(@Nullable
                              Object 객체)
        Collection 에 지정된 객체의 인스턴스가 포함되어 있는 경우 해당 객체의 인스턴스 한 개를 제거합니다. 이 구현은 이 Collection 을(를) 반복하고 반복자(iterator)가 반환한 각 요소 e ) e 가 주어진 객체와 같은지 여부)를 테스트합니다. object != null 인 경우 object.equals(e) 를 사용하여 이 테스트를 수행하고, 그렇지 않으면 object == null 을 사용합니다. 주어진 객체와 동일한 요소가 발견되면 반복기에서 remove 메서드가 호출되고 true 이 반환되고, 그렇지 않으면 false 이 반환됩니다. 반복기가 요소 제거를 지원하지 않으면 UnsupportedOperationException 가 발생합니다.
        다음에 의해 지정됩니다:
        remove 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        remove 인터페이스에서 List<E>
        재정의:
        remove 수업 중 AbstractCollection<E>
        매개변수:
        object - 제거할 객체입니다.
        반환합니다:
        trueCollection 가 수정되면 false , 그렇지 않으면 을 반환합니다.
        예외 처리:
        ClassCastException - 전달된 객체가 올바른 유형이 아닌 경우.
        NullPointerException - objectnull 인 경우.
      • 모두 제거하기

        public boolean removeAll​(Collection<?> collection)
        지정된 Collection 에서 각 객체의 이 Collection 에 있는 모든 항목을 제거합니다. 이 메서드가 전달된 Collection 의 어떤 요소도 반환하지 않으면 더 이상 이 Collection 에서 해당 요소를 찾을 수 없습니다.

        이 구현은 Collection 를 반복하고 반복자에서 반환된 각 요소 e 가 지정된 Collection 에 포함되어 있는지 테스트합니다. 이 테스트가 양성이면 반복기에서 remove 메서드가 호출됩니다.

        다음에 의해 지정됩니다:
        removeAll 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        removeAll 인터페이스에서 List<E>
        재정의:
        removeAll 수업 중 AbstractCollection<E>
        매개변수:
        collection - 제거할 객체의 collection입니다.
        반환합니다:
        trueCollection 가 수정되면 false , 그렇지 않으면 을 반환합니다.
        예외 처리:
        ClassCastException - collection 의 하나 이상의 요소가 올바른 유형이 아닌 경우.
        NullPointerException - collectionnull 인 경우.
      • deleteFirstFromRealm

        공개 부울 deleteFirstFromRealm()
        Realm에서 첫 번째 객체를 삭제합니다. 이렇게 하면 이 collection에서도 제거됩니다.
        다음에 의해 지정됩니다:
        deleteFirstFromRealm 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        true 객체가 삭제되면 false , 그렇지 않으면 을 반환합니다.
      • deleteLastFromRealm

        공개 부울 deleteLastFromRealm()
        Realm에서 마지막 객체를 삭제합니다. 이렇게 하면 이 collection에서도 제거됩니다.
        다음에 의해 지정됩니다:
        deleteLastFromRealm 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        true 객체가 삭제되면 false , 그렇지 않으면 을 반환합니다.
      • get

        @Nullable
        public E get(int 위치)
        이 목록의 지정된 위치에 있는 요소를 반환합니다.
        다음에 의해 지정됩니다:
        get 인터페이스에서 List<E>
        다음에 의해 지정됩니다:
        get 수업 중 AbstractList<E>
        매개변수:
        location - 반환할 요소의 인덱스입니다.
        반환합니다:
        지정된 인덱스에 있는 요소.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
        IndexOutOfBoundsException - location < 0 || location >= size() 인 경우.
      • first

        @Nullable
        public E first()
        컬렉션에서 첫 번째 객체를 가져옵니다.
        다음에 의해 지정됩니다:
        first 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        첫 번째 객체입니다.
      • first

        @Nullable
        public E first​(@Nullable
                       E defaultValue)
        collection에서 첫 번째 객체를 가져옵니다. collection이 비어 있으면 제공된 기본값이 대신 사용됩니다.
        다음에 의해 지정됩니다:
        first 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        첫 번째 객체 또는 제공된 기본값입니다.
      • last

        @Nullable
        public E last()
        collection에서 마지막 객체를 가져옵니다.
        다음에 의해 지정됩니다:
        last 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        마지막 객체입니다.
      • last

        @Nullable
        public E last(@Nullable
                      E defaultValue)
        collection에서 마지막 객체를 가져옵니다. collection이 비어 있으면 제공된 기본값이 대신 사용됩니다.
        다음에 의해 지정됩니다:
        last 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        마지막 객체 또는 제공된 기본값입니다.
      • sort

        public RealmResults<E> sort​(String fieldName)
        제공된 필드를 기준으로 collection을 오름차순으로 정렬합니다.
        다음에 의해 지정됩니다:
        sort 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        fieldName - 정렬할 필드 이름입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        반환합니다:
        새로 정렬된 RealmResults 이(가) 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.
      • sort

        public RealmResults<E> sort​(String fieldName,
                                    Sort sortOrder)
        제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.
        다음에 의해 지정됩니다:
        sort 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        fieldName - 정렬할 필드 이름입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrder - 정렬 기준 방향입니다.
        반환합니다:
        새로 정렬된 RealmResults 이(가) 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.
      • sort

        public RealmResults<E> sort​(String fieldName1,
                                    Sort sortOrder1,
                                    String fieldName2,
                                    Sort sortOrder2)
        제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.
        다음에 의해 지정됩니다:
        sort 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        fieldName1 - 첫 번째 필드 이름입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrder1 - 첫 번째 필드의 정렬 순서입니다.
        fieldName2 - 두 번째 필드 이름입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrder2 - 두 번째 필드의 정렬 순서입니다.
        반환합니다:
        새로 정렬된 RealmResults 이(가) 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.
      • sort

        public RealmResults<E> sort​(String[] fieldNames,
                                    Sort[] sortOrders)
        제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.
        다음에 의해 지정됩니다:
        sort 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        fieldNames - 정렬 기준이 되는 필드 이름의 배열입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrders - 정렬 기준 방향.
        반환합니다:
        새로 정렬된 RealmResults 이(가) 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.
      • deleteFromRealm

        public void deleteFromRealm​(int location)
        Realm에서 지정된 인덱스에 있는 객체를 삭제합니다. 이렇게 하면 collection에서도 제거됩니다.
        다음에 의해 지정됩니다:
        deleteFromRealm 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        location - 제거할 객체를 식별하는 배열 인덱스입니다.
      • size

        public int size()
        List 의 요소 수를 반환합니다.
        다음에 의해 지정됩니다:
        size 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        size 인터페이스에서 List<E>
        다음에 의해 지정됩니다:
        size 수업 중 AbstractCollection<E>
        반환합니다:
        List 의 요소 수입니다.
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
      • 위치

        public RealmQuery<E> where()
        이 클래스의 특정 객체를 쿼리하는 데 사용할 수 있는 RealmQuery를 반환합니다.
        다음에 의해 지정됩니다:
        where 인터페이스에서 RealmCollection<E>
        반환합니다:
        RealmQuery 객체
        예외 처리:
        IllegalStateException - Realm 인스턴스가 닫혔거나 상위 객체가 제거된 경우
        다음도 참조하세요.
        RealmQuery
      • min

        @Nullable
        public Number min​(String fieldName)
        필드의 최소값을 찾습니다.
        다음에 의해 지정됩니다:
        min 인터페이스에서 RealmCollection<E>
        매개변수:
        fieldName - 최소값을 찾을 필드입니다. 숫자 필드만 지원됩니다.
        반환합니다:
        객체가 없거나 지정된 필드의 값으로 객체가 모두 null 있는 경우 null 가 반환됩니다. 그렇지 않으면 최소값이 반환됩니다. 최소값을 결정할 때 null 값을 가진 객체는 무시됩니다.
      • 최대

        @Nullable
        public Number max​(String fieldName)
        필드의 최대값을 찾습니다.
        다음에 의해 지정됩니다:
        max 인터페이스에서 RealmCollection<E>
        매개변수:
        fieldName - 최대값을 찾을 필드입니다. 숫자 필드만 지원됩니다.
        반환합니다:
        객체가 없거나 지정된 필드의 값으로 객체가 모두 null 있는 경우 null 가 반환됩니다. 그렇지 않으면 최대값이 반환됩니다. 최대값을 결정할 때 null 값을 가진 객체는 무시됩니다.
      • 합계

        public Number sum​(String fieldName)
        지정된 필드의 합계를 계산합니다.
        다음에 의해 지정됩니다:
        sum 인터페이스에서 RealmCollection<E>
        매개변수:
        fieldName - 합계할 필드입니다. 숫자 필드만 지원됩니다.
        반환합니다:
        합계. 객체가 없거나 지정된 필드의 값으로 모두 null 가 있는 경우 0 가 반환됩니다. 합계를 계산할 때 null 값을 가진 객체는 무시됩니다.
      • 평균

        공개 이중 평균(String fieldName)
        지정된 필드의 평균을 반환합니다.
        다음에 의해 지정됩니다:
        average 인터페이스에서 RealmCollection<E>
        매개변수:
        fieldName - 평균을 계산할 필드입니다. 숫자 필드만 지원됩니다.
        반환합니다:
        쿼리 결과에 있는 객체 중 지정된 필드에 대한 평균입니다. 이 필드는 모든 유형의 숫자 필드에 대해 double 유형이 됩니다. 객체가 없거나 지정된 필드의 값으로 모두 null 가 있는 경우 0 가 반환됩니다. 평균을 계산할 때 null 값을 가진 객체는 무시됩니다.
      • maxDate

        @Nullable
        공개 날짜 maxDate(문자열 fieldName)
        최대 날짜를 찾습니다.
        다음에 의해 지정됩니다:
        maxDate 인터페이스에서 RealmCollection<E>
        매개변수:
        fieldName - 최대 날짜를 찾을 필드입니다. fieldName이 날짜 유형이 아닌 경우 예외가 발생합니다.
        반환합니다:
        객체가 없거나 지정된 날짜 필드의 값으로 객체가 모두 null 있는 경우 null 가 반환됩니다. 그렇지 않으면 최대 날짜가 반환됩니다. 최대 날짜를 결정할 때 null 값을 가진 객체는 무시됩니다.
      • minDate

        @Nullable
        공개 날짜 minDate(문자열 fieldName)
        최소 날짜를 찾습니다.
        다음에 의해 지정됩니다:
        minDate 인터페이스에서 RealmCollection<E>
        매개변수:
        fieldName - 최소 날짜를 찾을 필드입니다. fieldName이 날짜 유형이 아닌 경우 예외가 발생합니다.
        반환합니다:
        객체가 없거나 지정된 날짜 필드의 값으로 객체가 모두 null 있는 경우 null 가 반환됩니다. 그렇지 않으면 최소 날짜가 반환됩니다. 최소 날짜를 결정할 때 null 값을 가진 객체는 무시됩니다.
      • deleteAllFromRealm

        공개 부울 deleteAllFromRealm()
        이렇게 하면 collection뿐만 아니라 기본 Realm에서도 collection의 모든 객체가 삭제됩니다.
        다음에 의해 지정됩니다:
        deleteAllFromRealm 인터페이스에서 RealmCollection<E>
        반환합니다:
        true 객체가 삭제된 경우 false , 그렇지 않으면 입니다.
      • isLoaded

        공개 부울 isLoaded()
        collection이 아직 데이터 로드를 완료했는지 확인합니다.
        다음에 의해 지정됩니다:
        isLoaded 인터페이스에서 RealmCollection<E>
        반환합니다:
        true 데이터가 로드되어 사용 가능한 경우 false , 데이터가 아직 로드 중인 경우.
      • 로드

        public boolean load()
        모든 데이터를 사용할 수 있을 때까지 collection을 차단합니다.
        다음에 의해 지정됩니다:
        load 인터페이스에서 RealmCollection<E>
        반환합니다:
        true 데이터를 성공적으로 로드할 수 있으면 false 을 반환합니다.
      • contains

        공개 부울에는 (@Nullable
                                Object 객체)가 포함됩니다.
        Realm에 연결될 때 목록에 지정된 요소가 포함되어 있으면 true 를 반환합니다. 이 메서드는 네이티브 Realm 기본 storage engine을 쿼리하여 지정된 요소를 빠르게 찾습니다.

        목록이 Realm에 연결되지 않은 경우 기본 List.contains(Object) 구현이 발생합니다.

        다음에 의해 지정됩니다:
        contains 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        contains 인터페이스에서 List<E>
        다음에 의해 지정됩니다:
        contains 인터페이스에서 RealmCollection<E>
        재정의:
        contains 수업 중 AbstractCollection<E>
        매개변수:
        object - 이 목록에서 존재 여부를 테스트할 요소입니다.
        반환합니다:
        true 이 목록에 지정된 요소가 포함되어 있으면 그렇지 않으면 false.
      • getRealm

        public Realm getRealm()
        이 collection이 속한 Realm 인스턴스를 반환합니다.

        반환된 인스턴스에서 Closeable.close() 를 호출하는 것은 원래 Realm 인스턴스에서 호출하는 것과 동일하므로 Realm이 완전히 닫혀 목록이 무효화될 수 있으므로 권장하지 않습니다.

        반환합니다:
        Realm 인스턴스이거나 collection이 관리되지 않는 경우 null 입니다.
        예외 처리:
        IllegalStateException - Realm이 DynamicRealm 의 인스턴스이거나 Realm 가 이미 닫힌 경우
      • asFlowable

        public Flowable<RealmList<E>> asFlowable()
        이 RealmList의 변경 사항을 모니터링하는 Rx Flowable을 반환합니다. 구독 시 현재 RealmList를 방출합니다. RealmList는 RealmList가 업데이트될 때마다 계속 내보내지며 onComplete 은(는) 호출되지 않습니다.

        Realm Flowable에서 방출된 항목은 동결됩니다( freeze() 참조). 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

        Realm Flowable은 항상 라이브 RealmList를 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

        list.asFlowable() .observeOn(Schedulers.computation()) .map(rxResults -> doExpensiveWork(rxResults)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

        asFlowable() 에서 항목 방출을 중지하려면 first() 연산자를 사용하여 첫 번째 항목만 방출하도록 RxJava에 지시할 수 있습니다.

         
         list.asFlowable()
              .first()
              .subscribe( ... ) // You only get the results once
         
         

        반환합니다:
        onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.
        예외 처리:
        UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.
        다음도 참조하세요.
        RxJava 및 Realm
      • asChangesetObservable

        public Observable<CollectionChange<RealmList<E>>> asChangesetObservable()
        이 RealmList의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. 구독 시 현재 RealmList를 방출합니다. RealmList를 업데이트할 때마다 RealmList와 OrderedCollectionChangeSet 로 구성된 쌍이 전송됩니다. RealmList가 처음 방출될 때 변경 집합은 null 이(가) 됩니다.

        RealmList는 RealmList가 업데이트될 때마다 계속 내보내지며 onComplete 은(는) 호출되지 않습니다.

        Realm Observable에서 방출된 항목은 동결됩니다( freeze() 참조). 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

        Realm Observable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

        list.asChangesetObservable() .observeOn(Schedulers.computation()) .map((rxList, changes) -> doExpensiveWork(rxList, changes)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

        반환합니다:
        onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.
        예외 처리:
        UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.
        IllegalStateException - Realm이 루퍼 스레드에서 열리지 않은 경우.
        다음도 참조하세요.
        RxJava 및 Realm
      • addChangeListener

        public void addChangeListener​(OrderedRealmCollectionChangeListener<RealmList<E>> listener)
        RealmList 에 변경 리스너를 추가합니다.

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

         
         public class MyActivity extends Activity {
        
             private RealmList<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 OrderedRealmCollectionChangeListener<RealmList<Dog>>() {
                   \@Override
                   public void onChange(RealmList<Dog> dogs, OrderedCollectionChangeSet changeSet) {
                       // React to change
                   }
               });
             }
         }
         
         
        매개변수:
        listener - 알림을 받을 변경 리스너입니다.
        예외 처리:
        IllegalArgumentException - 변경 리스너가 null 인 경우
        IllegalStateException - 이벤트 루프가 아닌 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.
      • addChangeListener

        public void addChangeListener​(RealmChangeListener<RealmList<E>> listener)
        RealmList 에 변경 리스너를 추가합니다.

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

         
         public class MyActivity extends Activity {
        
             private RealmList<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<RealmList<Dog>>() {
                   \@Override
                   public void onChange(RealmList<Dog> dogs) {
                       // React to change
                   }
               });
             }
         }
         
         
        매개변수:
        listener - 알림을 받을 변경 리스너입니다.
        예외 처리:
        IllegalArgumentException - 변경 리스너가 null 인 경우
        IllegalStateException - 이벤트 루프가 아닌 또는 IntentService 스레드에서 리스너를 추가하려고 하는 경우.
      • 모든 변경 리스너 제거

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