패키지 io.realm

OrderedRealmCollectionSnapshot<E>클래스

  • 구현된 모든 인터페이스:
    io.realm.internal.Freezable<RealmCollection<E>>, io.realm.internal.ManageableObject, OrderedRealmCollection<E>, RealmCollection<E>, Iterable<E>, Collection<E>, List<E>

    public class OrderedRealmCollectionSnapshot<E>
    extends AbstractList<E>
    OrderedRealmCollectionSnapshotOrderedRealmCollection 의 특수한 유형입니다. OrderedRealmCollection.createSnapshot() 을(를) 호출하여 만들 수 있습니다. RealmResultsRealmList 와 달리 요소의 크기와 순서는 생성 후에 변경되지 않습니다.

    OrderedRealmCollectionSnapshot 는 간단한 루프에서 collection의 크기나 순서에 impact을 줄 수 있는 변경을 수행할 때 유용합니다. 예를 들면 다음과 같습니다.

     
     final RealmResults<Dog>  dogs = realm.where(Dog.class).findAll();
     final OrderedRealmCollectionSnapshot<Dog> snapshot = dogs.createSnapshot();
     final int dogsCount = snapshot.size(); // dogs.size() == snapshot.size() == 10
     realm.executeTransaction(new Realm.Transaction() {
         /@Override
         public void execute(Realm realm) {
             for (int i = 0; i < dogsCount; i++) {
             // This won't work since RealmResults is always up-to-date, its size gets decreased by 1 after every loop. An
             // IndexOutOfBoundsException will be thrown after 5 loops.
             // dogs.deleteFromRealm(i);
             snapshot.deleteFromRealm(i); // Deletion on OrderedRealmCollectionSnapshot won't change the size of it.
             }
         }
     });
     
     
    • 필드 세부 정보

      • baseRealm

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

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

    • 메서드 세부 정보

      • size

        public int size()
        이 쿼리 결과의 요소 수를 반환합니다.
        다음에 의해 지정됩니다:
        size 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        size 인터페이스에서 List<E>
        반환합니다:
        이 쿼리 결과의 요소 수입니다.
      • sort

        public RealmResults<E> sort​(String fieldName1,
                                    Sort sortOrder1,
                                    String fieldName2,
                                    Sort sortOrder2)
        OrderedRealmCollectionSnapshot 에서는 지원되지 않습니다. 대신 원본 OrderedRealmCollection 에 대해 'sort()'를 사용하세요.
        다음에 의해 지정됩니다:
        sort 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        fieldName1 - 첫 번째 필드 이름입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrder1 - 첫 번째 필드의 정렬 순서입니다.
        fieldName2 - 두 번째 필드 이름입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrder2 - 두 번째 필드의 정렬 순서입니다.
        반환합니다:
        새로 정렬된 RealmResults 이(가) 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.
        예외 처리:
        UnsupportedOperationException
      • sort

        public RealmResults<E> sort​(String[] fieldNames,
                                    Sort[] sortOrders)
        OrderedRealmCollectionSnapshot 에서는 지원되지 않습니다. 대신 원본 OrderedRealmCollection 에 대해 'sort()'를 사용하세요.
        다음에 의해 지정됩니다:
        sort 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        fieldNames - 정렬 기준이 되는 필드 이름의 배열입니다. 부울, 짧은, int, long, float, double, 날짜 및 문자열 유형의 필드만 지원됩니다.
        sortOrders - 정렬 기준 방향.
        반환합니다:
        새로 정렬된 RealmResults 이(가) 생성되어 반환됩니다. 원본 collection은 변경되지 않은 상태로 유지됩니다.
        예외 처리:
        UnsupportedOperationException
      • isLoaded

        공개 부울 isLoaded()
        collection이 아직 데이터 로드를 완료했는지 확인합니다.
        반환합니다:
        true 데이터가 로드되어 사용 가능한 경우 false , 데이터가 아직 로드 중인 경우.
      • 로드

        public boolean load()
        모든 데이터를 사용할 수 있을 때까지 collection을 차단합니다.
        반환합니다:
        true 데이터를 성공적으로 로드할 수 있으면 false 을 반환합니다.
      • deleteFromRealm

        public void deleteFromRealm​(int location)
        Realm에서 지정된 인덱스에 있는 객체를 삭제합니다. 지정된 인덱스에 있는 객체가 유효하지 않게 됩니다. 객체가 이미 유효하지 않은 경우에만 반환됩니다.
        다음에 의해 지정됩니다:
        deleteFromRealm 인터페이스에서 OrderedRealmCollection<E>
        매개변수:
        location - 제거할 객체를 식별하는 배열 인덱스입니다.
        예외 처리:
        IndexOutOfBoundsException - location < 0 || location >= size() 인 경우.
        IllegalStateException - Realm이 닫혔거나 잘못된 스레드에서 메서드가 호출된 경우
      • deleteFirstFromRealm

        공개 부울 deleteFirstFromRealm()
        Realm에서 첫 번째 객체를 삭제합니다. 첫 번째 객체는 유효하지 않게 됩니다.
        다음에 의해 지정됩니다:
        deleteFirstFromRealm 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        true 객체가 삭제되면 false , 그렇지 않으면 을 반환합니다.
        예외 처리:
        IllegalStateException - Realm이 닫혔거나 잘못된 스레드에서 메서드가 호출된 경우
      • deleteLastFromRealm

        공개 부울 deleteLastFromRealm()
        Realm에서 마지막 객체를 삭제합니다. 마지막 객체가 유효하지 않게 됩니다.
        다음에 의해 지정됩니다:
        deleteLastFromRealm 인터페이스에서 OrderedRealmCollection<E>
        반환합니다:
        true 객체가 삭제되면 false , 그렇지 않으면 을 반환합니다.
        예외 처리:
        IllegalStateException - Realm이 닫혔거나 잘못된 스레드에서 메서드가 호출된 경우
      • deleteAllFromRealm

        공개 부울 deleteAllFromRealm()
        이렇게 하면 기본 Realm에서 collection의 모든 객체가 삭제됩니다. collection 스냅샷의 모든 객체가 유효하지 않게 됩니다.
        다음에 의해 지정됩니다:
        deleteAllFromRealm 인터페이스에서 RealmCollection<E>
        반환합니다:
        true 객체가 삭제된 경우 false , 그렇지 않으면 입니다.
        예외 처리:
        IllegalStateException - 해당 Realm이 닫혔거나 잘못된 스레드에 있는 경우
        IllegalStateException - Realm이 닫혔거나 잘못된 스레드에서 호출된 경우
      • IsFrozen

        공개 부울 isFrozen()
      • isValid

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

        공개 부울에는 (@Nullable
                                Object 객체)가 포함됩니다.
        OrderedRealmCollection 에서 지정된 객체를 검색합니다.
        다음에 의해 지정됩니다:
        contains 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        contains 인터페이스에서 List<E>
        다음에 의해 지정됩니다:
        contains 인터페이스에서 RealmCollection<E>
        재정의:
        contains 수업 중 AbstractCollection<E>
        매개변수:
        object - 검색할 객체입니다.
        반환합니다:
        true object 가 이 OrderedRealmCollection 의 요소이면 false , 그렇지 않으면 입니다.
      • get

        @Nullable
        public E get(int 위치)
        이 목록의 지정된 위치에 있는 요소를 반환합니다.
        다음에 의해 지정됩니다:
        get 인터페이스에서 List<E>
        다음에 의해 지정됩니다:
        get 수업 중 AbstractList<E>
        매개변수:
        location - 반환할 요소의 인덱스입니다.
        반환합니다:
        지정된 인덱스에 있는 요소.
        예외 처리:
        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>
        반환합니다:
        마지막 객체 또는 제공된 기본값입니다.
      • iterator

        public Iterator<E> iterator()
        쿼리 결과에 대한 반복기를 반환합니다. 반복하는 동안 Realm을 변경하면 이 반복기에 액세스하면 이 반복기에 ConcurrentModificationException 이 발생합니다.
        다음에 의해 지정됩니다:
        iterator 인터페이스에서 Collection<E>
        다음에 의해 지정됩니다:
        iterator 인터페이스에서 Iterable<E>
        다음에 의해 지정됩니다:
        iterator 인터페이스에서 List<E>
        재정의:
        iterator 수업 중 AbstractList<E>
        반환합니다:
        이 목록의 요소에 대한 반복기(iterator)입니다.
        다음도 참조하세요.
        Iterator
      • listIterator

        public ListIterator<E> listIterator()
        쿼리 결과에 대한 목록 반복자를 반환합니다. 반복하는 동안 Realm을 변경하면 반복자에 액세스하면 반복자에서 ConcurrentModificationException 이 발생합니다.
        다음에 의해 지정됩니다:
        listIterator 인터페이스에서 List<E>
        재정의:
        listIterator 수업 중 AbstractList<E>
        반환합니다:
        이 목록의 요소에 대한 ListIterator입니다.
        다음도 참조하세요.
        ListIterator
      • listIterator

        public ListIterator<E> listIterator​(int location)
        쿼리 결과에 대한 목록 반복자를 반환합니다. 반복하는 동안 Realm을 변경하면 반복자에 액세스하면 반복자에서 ConcurrentModificationException 이 발생합니다.
        다음에 의해 지정됩니다:
        listIterator 인터페이스에서 List<E>
        재정의:
        listIterator 수업 중 AbstractList<E>
        매개변수:
        location - 반복을 시작할 인덱스입니다.
        반환합니다:
        이 목록의 요소에 대한 ListIterator입니다.
        예외 처리:
        IndexOutOfBoundsException - location < 0 || location > size() 인 경우.
        다음도 참조하세요.
        ListIterator
      • min

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

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

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

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

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

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

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

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

        반환합니다:
        Realm 이 collection이 속한 인스턴스.
        예외 처리:
        IllegalStateException - Realm이 DynamicRealm 의 인스턴스이거나 Realm 가 이미 닫힌 경우