我有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?
答案 0 :(得分:125)
出了什么问题:
benefit.indexOf(map4)
?它返回索引,如果找不到项,则返回-1。
BTW我强烈建议将地图包装在某个对象中并尽可能使用泛型。
答案 1 :(得分:15)
答案 2 :(得分:13)
以下是一个例子:
List<String> names;
names.add("toto");
names.add("Lala");
names.add("papa");
int index = names.indexOf("papa"); // index = 2
答案 3 :(得分:5)
使用List.indexOf()
。当存在多个重复项时,这将为您提供第一个匹配。
答案 4 :(得分:4)
答案 5 :(得分:1)
int indexOf(Object o)
此方法返回指定元素第一次出现的列表中的索引,如果此列表不包含此元素,则返回-1。
答案 6 :(得分:0)
int indexOf()
。如果找不到匹配项,则返回-1