So finden Sie die Indexposition eines Elements in einer Liste, wenn es true zurückgibt


74

Ich habe eine Listvon, HashMapalso benutze ich, List.containsum herauszufinden, ob die Liste eine bestimmte enthält HashMap. In diesem Fall möchte ich dieses Element aus der Liste abrufen. Wie finde ich die Indexposition heraus, an der sich das Element befindet?

    List benefit = new ArrayList();
    HashMap map = new HashMap();
    map.put("one", "1");
    benefit.add(map);
    HashMap map4 = new HashMap();
    map4.put("one", "1");

    System.out.println("size: " + benefit.size());
    System.out.println("does it contain orig: " + benefit.contains(map));
    System.out.println("does it contain new: " + benefit.contains(map4));

    if (benefit.contains(map4))
        //how to get index position where map4 was found in benefit list?

Antworten:


145
benefit.indexOf(map4)

Es gibt entweder einen Index oder -1 zurück, wenn die Elemente nicht gefunden werden.

Ich empfehle dringend , die Karte in ein Objekt zu wickeln und wenn möglich Generika zu verwenden.


Nur ein kleiner Kommentar, in einem Engpass-Code wird empfohlen, die Listensuche nur einmal auszuführen : int pos = list.indexOf(item); if (pos >= 0) { /* do it */ }.
Dávid Horváth


15

Hier ist ein Beispiel:

List<String> names;
names.add("toto");
names.add("Lala");
names.add("papa");
int index = names.indexOf("papa"); // index = 2

5

Verwenden Sie List.indexOf(). Dies gibt Ihnen die erste Übereinstimmung, wenn mehrere Duplikate vorhanden sind.


Was ist mit einem Beispiel? Wie benutzt man indexOf?
Teutara


1

int indexOf(Object o) Diese Methode gibt den Index in dieser Liste des ersten Auftretens des angegebenen Elements zurück oder -1, wenn diese Liste dieses Element nicht enthält.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.