A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.mongodb.com/docs/atlas/device-sdks/sdk/java/model-data/data-types/realmset/ below:

RealmSet - Java SDK - Atlas Device SDKs

New in version 10.6.0.

You can use the RealmSet data type to manage a collection of unique keys. RealmSet implements Java's Set interface, so it works just like the built-in HashSet class, except managed RealmSet instances persist their contents to a realm. RealmSet instances that contain Realm objects actually only store references to those objects, so deleting a Realm object from a realm also deletes that object from any RealmSet instances that contain the object.

Because RealmSet implements RealmCollection, it has some useful mathematical methods, such as sum, min, and max. For a complete list of available RealmSet methods, see: the RealmSet API reference.

You cannot use the following Realm methods on objects that contain a field of type RealmSet:

To create a field of type RealmSet, define an object property of type RealmSet<E>, where E defines the keys you would like to store in your RealmSet.

import io.realm.RealmObject;import io.realm.RealmSet;public class Frog extends RealmObject {    String name;    RealmSet<Snack> favoriteSnacks;        public Frog() {}    public String getName() { return name; }    public void setName(String name) { this.name = name; }    public RealmSet<Snack> getFavoriteSnacks() { return favoriteSnacks; }    public void setFavoriteSnacks(RealmSet<Snack> favoriteSnacks) { this.favoriteSnacks = favoriteSnacks; }}
import io.realm.RealmObject;public class Snack extends RealmObject {    private String name;    public Snack() {}    public String getName() { return name; }    public void setName(String name) { this.name = name; }}
Frog frog = realm.createObject(Frog.class);frog.setName("George Washington");RealmSet<Snack> set = frog.getFavoriteSnacks();Snack flies = realm.createObject(Snack.class);flies.setName("flies");set.add(flies);Snack water = realm.createObject(Snack.class);water.setName("water");Snack verySmallRocks = realm.createObject(Snack.class);verySmallRocks.setName("verySmallRocks");set.addAll(Arrays.asList(water, verySmallRocks));Assert.assertTrue(set.contains(flies));Snack biscuits = realm.createObject(Snack.class);biscuits.setName("biscuits");Assert.assertTrue(set.containsAll(Arrays.asList(water, biscuits)) == false);set.remove(verySmallRocks);Assert.assertTrue(set.contains(verySmallRocks) == false);int sizeOfSetBeforeDelete = set.size();flies.deleteFromRealm();Assert.assertTrue(sizeOfSetBeforeDelete == set.size() + 1);
import io.realm.RealmObjectimport io.realm.RealmSetopen class Frog    : RealmObject() {    var name: String = ""    var favoriteSnacks: RealmSet<Snack> = RealmSet<Snack>();}
import io.realm.RealmObjectopen class Snack : RealmObject() {    var name: String? = null}
val frog = realm.createObject(Frog::class.java)frog.name = "Jonathan Livingston Applesauce"val set = frog.favoriteSnacksval flies = realm.createObject(Snack::class.java)flies.name = "flies"set.add(flies)val water = realm.createObject(Snack::class.java)water.name = "water"val verySmallRocks = realm.createObject(Snack::class.java)verySmallRocks.name = "verySmallRocks"set.addAll(listOf(water, verySmallRocks))Assert.assertTrue(set.contains(flies))val biscuits = realm.createObject(Snack::class.java)biscuits.name = "biscuits"Assert.assertTrue(set.containsAll(Arrays.asList(water, biscuits)) == false)set.remove(verySmallRocks)Assert.assertTrue(set.contains(verySmallRocks) == false)val sizeOfSetBeforeDelete = set.sizeflies.deleteFromRealm()Assert.assertTrue(sizeOfSetBeforeDelete == set.size + 1)

To subscribe to changes to a RealmSet, pass a SetChangeListener implementation to the RealmSet.addChangeListener method. Your SetChangeListener implementation must define an onChange() method, which accepts a reference to the changed RealmSet and a set of changes as parameters. You can access the number of items added to the set as well as the number of items removed from the set through the SetChangeSet parameter.

AtomicReference<Frog> frog = new AtomicReference<Frog>();realm.executeTransaction(r -> {    frog.set(realm.createObject(Frog.class));    frog.get().setName("Jonathan Livingston Applesauce");});SetChangeListener<Snack> setChangeListener = new SetChangeListener<Snack>() {    @Override    public void onChange(@NotNull RealmSet<Snack> set, SetChangeSet changes) {        Log.v("EXAMPLE", "Set changed: " +                changes.getNumberOfInsertions() + " new items, " +                changes.getNumberOfDeletions() + " items removed.");    }};frog.get().getFavoriteSnacks().addChangeListener(setChangeListener);realm.executeTransaction(r -> {        RealmSet<Snack> set = frog.get().getFavoriteSnacks();        Snack flies = realm.createObject(Snack.class);    flies.setName("flies");    set.add(flies);        Snack water = realm.createObject(Snack.class);    water.setName("water");    Snack verySmallRocks = realm.createObject(Snack.class);    verySmallRocks.setName("verySmallRocks");    set.addAll(Arrays.asList(water, verySmallRocks));});
var frog :Frog? = nullrealm.executeTransaction { r: Realm? ->    frog = realm.createObject(Frog::class.java)    frog?.name = "Jonathan Livingston Applesauce"}val setChangeListener: SetChangeListener<Snack>        = SetChangeListener<Snack> { set, changes ->    Log.v("EXAMPLE", "Set changed: " +            changes.numberOfInsertions + " new items, " +            changes.numberOfDeletions + " items removed.")}frog?.favoriteSnacks?.addChangeListener(setChangeListener)realm.executeTransaction { r: Realm? ->        val set = frog!!.favoriteSnacks        val flies = realm.createObject(Snack::class.java)    flies.name = "flies"    set.add(flies)        val water = realm.createObject(Snack::class.java)    water.name = "water"    val verySmallRocks = realm.createObject(Snack::class.java)    verySmallRocks.name = "verySmallRocks"    set.addAll(Arrays.asList(water, verySmallRocks))}

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4