如何在包含的情况下查找列表中元素的索引位置返回true

我有一个HashMap List ,所以我使用List.contains找出列表是否包含指定的HashMap 。 如果是这样,我想从列表中获取该元素,那么如何find元素所在的索引位置?

  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? 

有什么问题:

 benefit.indexOf(map4) 

? 如果找不到项目,它将返回一个索引或-1。

顺便说一句,我强烈build议包装在一些对象的地图,如果可能的话使用generics。

indexOf(object)

get(index)

使用List.indexOf() 。 当有多个重复项时,这会给你第一个匹配项。

#列出的indexOf

这里是一个例子:

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

int indexOf(Object o)此方法返回此列表中指定元素第一次出现的索引,如果此列表不包含此元素,则返回-1。