Як знайти позицію індексу елемента у списку, коли містить повертає true


75

У мене є ListHashMapso”, тому я використовую, 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?

Відповіді:


146
benefit.indexOf(map4)

Він повертає індекс або -1, якщо елементи не знайдені.

Я настійно рекомендую обернути карту якимось об’єктом і за можливості використовувати загальні засоби.


Тільки незначне зауваження, у вузькому місці шматка коди рекомендується запустити пошук списку тільки один раз int pos = list.indexOf(item); if (pos >= 0) { /* do it */ }.
Давід Горват,


15

Ось приклад:

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



1

int indexOf(Object o) Цей метод повертає індекс у цьому списку першого входження зазначеного елемента або -1, якщо цей список не містить цього елемента.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.