Docs Menu
Docs Home
/ /
io.realm

Interfaz OrderedRealmCollection

Interfaces implementadas:

  • java.util.List

  • io.realm.ColecciónRealm

  • java.util.Collection

  • java.lang.Iterable

  • java.util.Collection

  • java.lang.Iterable

An OrderedRealmCollection Es una colección que mantiene un orden para sus elementos. Cada elemento en OrderedRealmCollection tiene un índice. Por lo tanto, se puede acceder a cada elemento por su índice, siendo el primero cero. Normalmente, los OrderedRealmCollection permiten elementos duplicados, a diferencia de los conjuntos, donde los elementos deben ser únicos.

Hay tres tipos de OrderedRealmCollection. RealmResults y RealmList son colecciones activas. Se actualizan constantemente y nunca contendrán un RealmObject no válido. OrderedRealmCollectionSnapshot es diferente. Una OrderedRealmCollectionSnapshot se puede crear a partir de otra OrderedRealmCollection. Su tamaño y el orden de los elementos se mantienen iguales a los de la colección original al crearse. OrderedRealmCollectionSnapshot puede contener RealmObject no válidos si los objetos se eliminan.

Usar iteradores para iterar en OrderedRealmCollection siempre funcionará. Puedes eliminar o modificar los elementos sin afectar al iterador. Consulta el siguiente ejemplo:

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

Un iterador creado a partir de una colección activa generará una vista estable al crearse, lo que permite eliminar y modificar elementos durante la iteración sin afectar al iterador. Sin embargo, el que respalda al RealmResults iterador se actualizará en tiempo real, lo que significa que el tamaño y el orden de los elementos pueden cambiar durante laiteración. RealmList se comporta igual que RealmResults, ya que ambas son colecciones activas.

Un bucle for simple es diferente. Vea el siguiente ejemplo:

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

El ejemplo anterior solo elimina la mitad de los elementos de RealmResults. Esto se debe a que se dogs.size() reduce en 1 en cada bucle. La eliminación en el bucle afectará inmediatamente el tamaño RealmResults de. Para solucionar este problema, puede crear una OrderedRealmCollectionSnapshot a partir de RealmResults o RealmList y ejecutar un bucle for simple en ella:

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

Como puede ver, tras la eliminación, el tamaño y el orden de los elementos de la instantánea se mantienen igual. Sin embargo, el elemento en esa posición deja de ser válido.

Modificador y Tipo
Método y descripción

Instantánea de colecciónpública de reinos ordenados

Crea una instantánea de esta OrderedRealmCollection.

booleanopúblico

Elimina el primer objeto del Reino.

vacío público

int location
)

Elimina el objeto en el índice dado del Reino.

booleanopúblico

Elimina el último objeto del Reino.

público E

E defaultValue
)

Obtiene el primer objeto de la colección.

público E

Obtiene el primer objeto de la colección.

público E

E defaultValue
)

Obtiene el último objeto de la colección.

público E

last ()

Obtiene el último objeto de la colección.

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

Ordena una colección en función de los campos y órdenes de clasificación enviados.

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

Ordena una colección en función de los campos y órdenes de clasificación enviados.

String fieldName,
Sort sortOrder
)

Ordena una colección según el campo proporcionado y el orden de clasificación.

String fieldName
)

Ordena una colección según el campo proporcionado en orden ascendente.

Crea una instantánea de esta OrderedRealmCollection.

Devuelve

La instantánea de esta colección.

Lanzamientos

Tip

public boolean deleteFirstFromRealm ()

Elimina el primer objeto del dominio. Esto también lo elimina de esta colección.

Devuelve

true si se eliminó un objeto, false en caso contrario.

Lanzamientos

public void deleteFromRealm (
int location
)

Elimina el objeto en el índice dado del dominio. Esto también lo elimina de la colección.

Parámetros

  • location - el índice del arreglo que identifica el objeto que se va a eliminar.

Lanzamientos

public boolean deleteLastFromRealm ()

Elimina el último objeto del dominio. Esto también lo elimina de esta colección.

Devuelve

true si se eliminó un objeto, false en caso contrario.

Lanzamientos

public E first (
E defaultValue
)

Obtiene el primer objeto de la colección. Si la colección está vacía, se usará el valor predeterminado proporcionado.

Devuelve

el primer objeto o el predeterminado proporcionado.

public E first ()

Obtiene el primer objeto de la colección.

Devuelve

El primer objeto.

Lanzamientos

public E last (
E defaultValue
)

Obtiene el último objeto de la colección. Si la colección está vacía, se usará el valor predeterminado proporcionado.

Devuelve

el último objeto o el predeterminado proporcionado.

public E last ()

Obtiene el último objeto de la colección.

Devuelve

El último objeto.

Lanzamientos

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

Ordena una colección en función de los campos y órdenes de clasificación enviados.

Parámetros

  • fieldNames Una matriz de nombres de campo para ordenar. Solo se admiten campos de tipo booleano, corto, entero, largo, flotante, doble, fecha y cadena.

  • sortOrders - las instrucciones para ordenar.

Devuelve

Se creará y devolverá un nuevo RealmResults ordenado. La colección original permanece intacta.

Lanzamientos

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

Ordena una colección en función de los campos y órdenes de clasificación enviados.

Parámetros

  • fieldName1 - Nombre del primer campo. Solo se admiten campos de tipo booleano, corto, int, largo, flotante, doble, fecha y cadena.

  • sortOrder1 - orden de clasificación para el primer campo.

  • fieldName2 - Nombre del segundo campo. Solo se admiten campos de tipo booleano, corto, int, largo, flotante, doble, fecha y cadena.

  • sortOrder2 - orden de clasificación para el segundo campo.

Devuelve

Se creará y devolverá un nuevo RealmResults ordenado. La colección original permanece intacta.

Lanzamientos

String fieldName,
Sort sortOrder
)

Ordena una colección según el campo proporcionado y el orden de clasificación.

Parámetros

  • fieldName - El nombre del campo por el que se ordenará. Solo se admiten campos de tipo booleano, corto, int, largo, flotante, doble, fecha y cadena.

  • sortOrder - la dirección por la que ordenar.

Devuelve

Se creará y devolverá un nuevo RealmResults ordenado. La colección original permanece intacta.

Lanzamientos

String fieldName
)

Ordena una colección según el campo proporcionado en orden ascendente.

Parámetros

  • fieldName - El nombre del campo por el que se ordenará. Solo se admiten campos de tipo booleano, corto, int, largo, flotante, doble, fecha y cadena.

Devuelve

Se creará y devolverá un nuevo RealmResults ordenado. La colección original permanece intacta.

Lanzamientos

Volver

OrderedCollectionChangeSet.estado

En esta página