Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

OrderedRealmCollection

項目一覧

  • io.realm
  • メソッドの概要
  • 継承されたメソッド
  • メソッドの詳細
  • createSnapshot
  • deleteFirstFromRealm
  • deleteFromRealm
  • deleteLastFromRealm
  • 最初に
  • last
  • sort

実装されたインターフェース:

  • java.util.List

  • io.realm.RealmCollection

  • java.util.Collection

  • java.lang.Iterable

  • java.util.Collection

  • java.lang.Iterable

OrderedRealmCollectionは、要素の順序付けを維持するコレクションです。 OrderedRealmCollection内のすべての要素にはインデックスがあります。 したがって、各要素にはそのインデックスがアクセスできます。最初のインデックスは 0 です。 通常、 OrderedRealmCollectionは、要素が一意である必要がある Set と比較して、重複要素を許可します。

OrderedRealmCollectionには 3 つのタイプがあります。 RealmResultsRealmListはライブ コレクションです。 常に最新の状態で、無効な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は引き続きライブ更新され、反復処理中に要素のサイズと順序が変更される可能性があります。 RealmListRealmResultsと同じ動作をします。これらは両方ともライブ コレクションであるためです。

単純な 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のサイズにすぐに影響します。 この問題を解決するには、 RealmResults または RealmList から OrderedRealmCollectionSnapshot を作成し、その上で単純な 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

ご覧のとおり、削除後も、スナップショットのサイズと要素の順序は以前と同じままです。 ただし、位置の要素は無効になります。

修飾子と型
メソッドと説明

このOrderedRealmCollectionからスナップショットを作成します。

パブリックブール値

Realm から最初のオブジェクトを削除します。

public void
int location
)

指定されたインデックスにあるオブジェクトを Realm から削除します。

パブリックブール値

Realm から最後のオブジェクトを削除します。

public E
E defaultValue
)

コレクションから最初のオブジェクトを取得します。

public E

コレクションから最初のオブジェクトを取得します。

public E
E defaultValue
)

コレクションから最後のオブジェクトを取得します。

public E
last ()

コレクションから最後のオブジェクトを取得します。

java.lang.String[] fieldNames,
io.realm.Sort[] sortOrders
)

指定されたフィールドとソート順序に基づいてコレクションをソートします。

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

指定されたフィールドとソート順序に基づいてコレクションをソートします。

String fieldName,
Sort sortOrder
)

指定されたフィールドとソート順序に基づいてコレクションをソートします。

String fieldName
)

指定された フィールドに基づいてコレクションを昇順でソートします。

このOrderedRealmCollectionからスナップショットを作成します。

戻り値

このコレクションのスナップショット。

スロー

Tip

以下も参照してください。

public boolean deleteFirstFromRealm ()

Realm から最初のオブジェクトを削除します。 これにより、このコレクションからそのファイルも削除されます。

戻り値

true オブジェクトが削除された場合は 、それ以外の場合はfalse

スロー

public void deleteFromRealm (
int location
)

指定されたインデックスにあるオブジェクトを Realm から削除します。 これにより、 コレクションからそのファイルも削除されます。

パラメーター

  • location - 削除するオブジェクトを識別する配列インデックス。

スロー

public boolean deleteLastFromRealm ()

Realm から最後のオブジェクトを削除します。 これにより、このコレクションからそのファイルも削除されます。

戻り値

true オブジェクトが削除された場合は 、それ以外の場合はfalse

スロー

public E first (
E defaultValue
)

コレクションから最初のオブジェクトを取得します。 コレクションが空の場合は、指定されたデフォルトが代わりに使用されます。

戻り値

最初のオブジェクトまたは指定されたデフォルトの 。

public E first ()

コレクションから最初のオブジェクトを取得します。

戻り値

最初のオブジェクト。

スロー

public E last (
E defaultValue
)

コレクションから最後のオブジェクトを取得します。 コレクションが空の場合は、指定されたデフォルトが代わりに使用されます。

戻り値

最後の オブジェクトまたは指定されたデフォルトの 。

public E last ()

コレクションから最後のオブジェクトを取得します。

戻り値

最後のオブジェクト。

スロー

java.lang.String[] fieldNames,
io.realm.Sort[] sortOrders
)

指定されたフィールドとソート順序に基づいてコレクションをソートします。

パラメーター

  • fieldNames - ソートするフィールド名の配列。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。

  • sortOrders - 並べ替える方向。

戻り値

新しいソートされたRealmResultが作成され、返されます。 元のコレクションは変更されません。

スロー

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 番目のフィールドのソート順序。

戻り値

新しいソートされたRealmResultが作成され、返されます。 元のコレクションは変更されません。

スロー

String fieldName,
Sort sortOrder
)

指定されたフィールドとソート順序に基づいてコレクションをソートします。

パラメーター

  • fieldName - 並べ替えるフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。

  • sortOrder - 並べ替える方向。

戻り値

新しいソートされたRealmResultが作成され、返されます。 元のコレクションは変更されません。

スロー

String fieldName
)

指定された フィールドに基づいてコレクションを昇順でソートします。

パラメーター

  • fieldName - 並べ替えるフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。

戻り値

新しいソートされたRealmResultが作成され、返されます。 元のコレクションは変更されません。

スロー

戻る

ordered