インターフェース ordered<E>
-
- すべてのスーパーインターフェース:
Collection<E>
,io.realm.internal.Freezable<RealmCollection<E>>
,Iterable<E>
,List<E>
,io.realm.internal.ManageableObject
,RealmCollection<E>
- すべての既知の実装クラス:
OrderedRealmCollectionSnapshot
,RealmList
,RealmResults
public interface OrderedRealmCollection<E> extends List<E>, RealmCollection<E>
OrderedRealmCollection
は、要素の順序付けを維持するコレクションです。OrderedRealmCollection
内のすべての要素にはインデックスがあります。 したがって、各要素にはそのインデックスがアクセスできます。最初のインデックスは 0 です。 通常、OrderedRealmCollection
は、要素が一意である必要がある Set と比較して、重複要素を許可します。OrderedRealmCollection
には 3 つのタイプがあります。RealmResults
とRealmList
はライブ コレクションです。 常に最新の状態で、無効なRealmObject
が含まれることはありません。OrderedRealmCollectionSnapshot
は別です。OrderedRealmCollectionSnapshot
は別のOrderedRealmCollection
から作成できます。 サイズと要素の順序は、作成時に元のコレクションと同じままです。 オブジェクトが削除された場合、OrderedRealmCollectionSnapshot
には無効なRealmObject
が含まれる可能性があります。OrderedRealmCollection
を反復処理するのは常に機能します。 イテレータに影響を与えずに要素を削除または変更できます。 以下の例を参照してください。RealmResults<Dog> dogs = realm.where(Dog.class).findAll(); int s = dogs.size(); // 10 realm.beginTransaction(); for (Dog dog : dogs) { dog.deleteFromRealm(); s = dogs.size(); // This will be decreased by 1 every time after a dog is removed. } realm.commitTransaction(); s = dogs.size(); // 0
ライブ コレクションから作成されたイテレータは、イテレータの作成時に安定したビューを作成するため、反復処理中にイテレータに影響を与えずに要素を削除および変更できます。 ただし、イテレータをサポートする
RealmResults
は引き続きライブ更新され、反復処理中に要素のサイズと順序が変更される可能性があります。RealmList
はRealmResults
と同じ動作をします。どちらもライブ コレクションであるためです。単純な for ループは異なります。 以下の例を参照してください。
RealmResults<Dog> dogs = realm.where(Dog.class).findAll(); realm.beginTransaction(); for (int i = 0; i < dogs.size(); i++) { dogs.get(i).deleteFromRealm(); } realm.commitTransaction(); s = dogs.size(); // 5
上記の例では、
RealmResults
内の要素の半分を削除しています。 これは、ループごとにdogs.size()
が 1 ずつ減少しているためです。 ループ内で削除が発生すると、RealmResults
のサイズにすぐに影響します。 この問題を解決するには、OrderedRealmCollectionSnapshot
RealmResults
または からRealmList
を作成し、そのに対して単純な for ループを実行します。RealmResults<Dog> dogs = realm.where(Dog.class).findAll(); OrderedRealmCollectionSnapshot snapshot = dogs.createSnapshot(); // dogs.size() == 10 && snapshot.size() == 10 realm.beginTransaction(); for (int i = 0; i < snapshot.size(); i++) { snapshot.get(0).deleteFromRealm(); // snapshot.get(0).isValid() == false } realm.commitTransaction(); // dogs.size() == 0 && snapshot.size() == 10
ご覧のとおり、削除後も、スナップショットのサイズと要素の順序は以前と同じままです。 ただし、位置の要素は無効になります。
-
-
メソッドの概要
すべてのメソッド インスタンス メソッド 抽象メソッド 修飾子と型 方式 説明 OrderedRealmCollectionSnapshot<E>
createSnapshot()
このOrderedRealmCollection
からスナップショットを作成します。boolean
deleteFirstFromRealm()
Realm から最初のオブジェクトを削除します。void
deleteFromRealm(int location)
指定されたインデックスにあるオブジェクトを Realm から削除します。boolean
deleteLastFromRealm()
Realm から最後のオブジェクトを削除します。E
first()
コレクションから最初のオブジェクトを取得します。E
first(E defaultValue)
コレクションから最初のオブジェクトを取得します。E
last()
コレクションから最後のオブジェクトを取得します。E
last(E defaultValue)
コレクションから最後のオブジェクトを取得します。RealmResults<E>
sort(String fieldName)
指定された フィールドに基づいてコレクションを昇順でソートします。RealmResults<E>
sort(String[] fieldNames, Sort[] sortOrders)
指定されたフィールドとソート順序に基づいてコレクションをソートします。RealmResults<E>
sort(String fieldName, Sort sortOrder)
指定されたフィールドとソート順序に基づいてコレクションをソートします。RealmResults<E>
sort(String fieldName1, Sort sortOrder1, String fieldName2, Sort sortOrder2)
指定されたフィールドとソート順序に基づいてコレクションをソートします。-
インターフェース java.user から継承されたメソッド。コレクション
parallelStream, removeIf, stream, toArray
-
インターフェース java.user から継承されたメソッド。リスト
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
-
-
-
-
メソッドの詳細
-
最初に
@Nullable E first()
コレクションから最初のオブジェクトを取得します。- 次の値を返します。
- 最初のオブジェクト。
- 次の例外がスローされます。
IndexOutOfBoundsException
- コレクションが空の場合。
-
最初に
@Nullable Eが先頭( @Nullable E defaultValue)
コレクションから最初のオブジェクトを取得します。 コレクションが空の場合は、指定されたデフォルトが代わりに使用されます。- 次の値を返します。
- 最初のオブジェクトまたは指定されたデフォルトの 。
-
last
@Nullable E last()
コレクションから最後のオブジェクトを取得します。- 次の値を返します。
- 最後のオブジェクト。
- 次の例外がスローされます。
IndexOutOfBoundsException
- コレクションが空の場合。
-
last
@Nullable Elast ( @Nullable E defaultValue)
コレクションから最後のオブジェクトを取得します。 コレクションが空の場合は、指定されたデフォルトが代わりに使用されます。- 次の値を返します。
- 最後の オブジェクトまたは指定されたデフォルトの 。
-
sort
RealmResults < E > sort( string fieldName)
指定された フィールドに基づいてコレクションを昇順でソートします。- パラメーター:
fieldName
- 並べ替えるフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。- 次の値を返します。
- 新しいソートされた
RealmResults
が作成され、返されます。 元のコレクションは変更されません。 - 次の例外がスローされます。
IllegalArgumentException
- フィールド名が存在しないか、無効なタイプがある場合。IllegalStateException
- Realm が閉じている、間違ったスレッドで呼び出された、またはコレクションが管理されていないコレクションの場合。
-
sort
RealmResults < E > sort( string fieldName, Sort sortOrderer)
指定されたフィールドとソート順序に基づいてコレクションをソートします。- パラメーター:
fieldName
- 並べ替えるフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。sortOrder
- 並べ替える方向。- 次の値を返します。
- 新しいソートされた
RealmResults
が作成され、返されます。 元のコレクションは変更されません。 - 次の例外がスローされます。
IllegalArgumentException
- フィールド名が存在しないか、無効なタイプがある場合。IllegalStateException
- Realm が閉じている、間違ったスレッドで呼び出された、またはコレクションが管理されていないコレクションの場合。
-
sort
RealmResults < E > sort( string fieldName1, Sort sortOrder1, string fieldName2, Sort sortOrder2)
指定されたフィールドとソート順序に基づいてコレクションをソートします。- パラメーター:
fieldName1
- 最初のフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。sortOrder1
- 最初のフィールドのソート順。fieldName2
- 2 番目のフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。sortOrder2
- 2 番目のフィールドのソート順序。- 次の値を返します。
- 新しいソートされた
RealmResults
が作成され、返されます。 元のコレクションは変更されません。 - 次の例外がスローされます。
IllegalArgumentException
- フィールド名が存在しないか、無効なタイプがある場合。IllegalStateException
- Realm が閉じている、間違ったスレッドで呼び出された、またはコレクションが管理されていないコレクションの場合。
-
sort
RealmResults < E > sort( string [] fieldNames、 Sort [] sortOrders)
指定されたフィールドとソート順序に基づいてコレクションをソートします。- パラメーター:
fieldNames
- ソートするフィールド名の配列。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。sortOrders
- 並べ替える方向。- 次の値を返します。
- 新しいソートされた
RealmResults
が作成され、返されます。 元のコレクションは変更されません。 - 次の例外がスローされます。
IllegalArgumentException
- フィールド名が存在しないか、無効なタイプがある場合。IllegalStateException
- Realm が閉じている、間違ったスレッドで呼び出された、またはコレクションが管理されていないコレクションの場合。
-
deleteFromRealm
emptydeleteFromRealm(intlocation)
指定されたインデックスにあるオブジェクトを Realm から削除します。 これにより、 コレクションからそのファイルも削除されます。- パラメーター:
location
- 削除するオブジェクトを識別する配列インデックス。- 次の例外がスローされます。
IndexOutOfBoundsException
-location < 0 || location >= size()
の場合。IllegalStateException
- Realm が閉じている場合、またはメソッドが間違ったスレッドから呼び出された場合。UnsupportedOperationException
- コレクションが管理されていない場合。
-
deleteFirstFromRealm
ブール値の deleteFirstFromRealm()
Realm から最初のオブジェクトを削除します。 これにより、このコレクションからそのファイルも削除されます。- 次の値を返します。
true
オブジェクトが削除された場合は 、それ以外の場合はfalse
。- 次の例外がスローされます。
IllegalStateException
- Realm が閉じている場合、またはメソッドが間違ったスレッドで呼び出された場合。UnsupportedOperationException
- コレクションが管理されていない場合。
-
deleteLastFromRealm
ブール値の deleteLastFromRealm()
Realm から最後のオブジェクトを削除します。 これにより、このコレクションからそのファイルも削除されます。- 次の値を返します。
true
オブジェクトが削除された場合は 、それ以外の場合はfalse
。- 次の例外がスローされます。
IllegalStateException
- Realm が閉じている場合、またはメソッドが間違ったスレッドから呼び出された場合。UnsupportedOperationException
- コレクションが管理されていない場合。
-
createSnapshot
orderedRealmCollectionSnapshot < E > createSnapshot()
このOrderedRealmCollection
からスナップショットを作成します。- 次の値を返します。
- このコレクションのスナップショット。
- 次の例外がスローされます。
IllegalStateException
- Realm が閉じている場合、またはメソッドが間違ったスレッドから呼び出された場合。UnsupportedOperationException
- コレクションが管理されていない場合。- 以下も参照してください。
OrderedRealmCollectionSnapshot
-
-