境界加入名单

时间:2017-03-03 19:39:08

标签: java android realm realm-mobile-platform

我的列表1包含ID(列表ticketID)和列表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 个答案:

答案 0 :(得分: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();