Подтвердить что ты не робот

Как найти индексную позицию элемента в списке, когда содержит возвращает true

У меня есть List от HashMap, поэтому я использую List.contains, чтобы узнать, содержит ли список указанный HashMap. В случае, если это так, я хочу извлечь этот элемент из списка, поэтому Как узнать положение индекса, где находится элемент?

    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?
4b9b3361

Ответ 1

Что случилось с:

benefit.indexOf(map4)

? Он либо возвращает индекс, либо -1, если элементы не найдены.

BTW я strong рекомендую обернуть карту в каком-либо объекте и, если возможно, использовать дженерики.

Ответ 3

Используйте List.indexOf(). Это даст вам первое совпадение при наличии нескольких дубликатов.

Ответ 5

Вот пример:

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

Ответ 6

int indexOf(Object o) Этот метод возвращает индекс в этом списке первого вхождения указанного элемента или -1, если этот список не содержит этот элемент.