我的列表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导致性能问题,例如滚动卡在某些点)
答案 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();