Search code examples
javaandroidrealmrealm-mobile-platform

Realm joining list


I have list 1 which contains ID's (List ticketIDs) and list 2:

List<Ticket> myTickets = realm.where(Ticket.class).equalTo("Status", "E").findAll();

Now I need to get new list (List<Ticket> newTickets) which should contain the tickets with status E and its ID should be in list 1.

I am able to achieve this by doing :

for (Ticket ticket : mytickets) 
        if (ticketIDs.contains(ticket.TicketID))
            newTickets.add(ticket);

Is it possible to get newTickets by single query (as using forLoop causing performance issues like scrolling being stuck at some points)


Solution

  • Why not use RealmQuery.in()?

    String[] strings = new String[ticketIds.size()];
    RealmResults<Ticket> results = realm.where(Ticket.class) 
                       .equalTo("Status", "E") 
                       .in("TicketID", ticketIds.<String>toArray(strings))
                       .findAll();