Список присоединения Realm

У меня есть список 1, который содержит идентификаторы (список тикетов) и список 2:

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

Теперь мне нужно получить новый список (List<Ticket> newTickets) который должен содержать билеты со статусом E и его ID должен быть в списке 1.

Я могу добиться этого, выполнив:

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

Можно ли получить newTickets по одному запросу (так как использование forLoop вызывает проблемы с производительностью, такие как прокрутка, застревание в некоторых точках)

1 ответ

Решение

Почему бы не использовать 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();
Другие вопросы по тегам