2017-03-03 8 views
1

Ich habe Liste 1, die (Liste ticketIDs) die ID enthält und Liste 2:Realm Liste

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

Jetzt brauche ich neue Liste (List<Ticket> newTickets) zu erhalten, die die Tickets mit Status E und seine ID enthalten sollte in Liste 1.

ich in der Lage bin, dies zu erreichen, indem sie sein sollte:

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

Ist es möglich, newTickets durch einzelne Abfrage zu erhalten (wie die Verwendung forloop verursacht Leistungsprobleme wie Scrollen an einigen Punkten festhängen)

Antwort

1

Warum nicht RealmQuery.in() verwenden?

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

Sorry für delay..if i ticketIds.toArray mit(), um Urtyp zu werfen fragen ... wenn im Casting ist es sagt Objekt kann nicht auf primitive Typen – sai

+0

in Ordnung gegossen werden, angepasst ich die Antwort entsprechend – EpicPandaForce

+0

eigentlich ticketIds sind Liste von Ganzzahlen (Liste ticketIds – sai

Verwandte Themen