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?
Anthony
quelle

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.

Tomasz Nurkiewicz
quelle
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

indexOf(object)

get(index)

Bhesh Gurung
quelle
Was ist mit einem Beispiel? Wie benutzt man indexOf?
Teutara
15

Hier ist ein Beispiel:

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

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

Oliver Charlesworth
quelle
Was ist mit einem Beispiel? Wie benutzt man indexOf?
Teutara
4

Liste # indexOf

Andrei LED
quelle
2
Was ist mit einem Beispiel? Wie benutzt man indexOf? ohne Hashmap?
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.

Cyberwissenschaftler
quelle
0

int indexOf() kann verwendet werden. Es gibt -1 zurück, wenn keine Übereinstimmung gefunden wird

sarwadnya deshpande
quelle