[java] How to find index position of an element in a list when contains returns true

I've got a List of HashMap so I'm using List.contains to find out if the list contains a specified HashMap. In case it does, I want to fetch that element from the list, so How do I find out index position of where the element is?

    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?

This question is related to java

The answer is


Use List.indexOf(). This will give you the first match when there are multiple duplicates.


int indexOf(Object o) This method returns the index in this list of the first occurrence of the specified element, or -1 if this list does not contain this element.



Here is an example:

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

int indexOf() can be used. It returns -1 if no matching finds