2012-05-16 11 views
10

Gibt es eine Möglichkeit zu überprüfen, ob eine Liste ein bestimmtes Element enthält? Ich schaute auf die List-Funktionen und sah keine contain() -Funktion wie Java oder C#, also habe ich mich gefragt, wie andere Leute damit umgehen.Prüfen, ob eine Scheitelpunktliste ein Objekt enthält

Ich brauche wirklich eine Liste zu verwenden, ich kippe eine Karte verwenden wie in diesem Beispiel here

Was ich jetzt habe, ist wirklich schlecht ..

    for (String s : allContacts) 
        {      

         for(String ic:insertedContacts) 
         {       
          if (s != ic) 
          { 
            errorContacts.add(s); 
            break; 
          } 
          break; 
         } 
       } 

Antwort

24

Ein Set sein könnte, was du schaust nach.

  1. Definieren Sie ein neues Set. Set<String> mySet = new Set<String>();
  2. Verwenden Sie die Methode Set.addAll(), um alle Elemente der Liste zur Gruppe hinzuzufügen. mySet.addAll(myList);.
  3. Verwenden Sie die Methode Set.contains(), um das Set für das gesuchte Element zu überprüfen.
+4

Manchmal bin ich verrückt von Salesforce getrieben. Ich muss eine Liste eindeutiger Schlüsselwertpaare speichern. Zuerst wollte ich Listen verwenden, aber ich wollte nicht alle Elemente durchlaufen, um das Einfügen eines doppelten Schlüsselwerts zu verhindern. Ich dachte über Karten nach, da sie eine Methode containskey() haben, um vor dem Einfügen nach Duplikaten zu suchen. Ich muss diese Daten auch Visualforce zur Verfügung stellen und sieht so aus, dass Maps nicht mit Visualforce-Elementen wie apex: repeat verknüpft werden können. –

+2

Salesforce macht mich auch verrückt. – edgartheunready

+1

'' kann verwendet werden, um auch über eine Karte zu iterieren. http://salesforce.stackexchange.com/a/9323/72 –