多个对象存储的ArrayList中,如何获取该对象在ArrayList里的索引值

多个对象存储的ArrayList中,如果只知道对象其中的一个属性,如何获取该对象在ArrayList里的索引值?

比如说:一个Person类有三个属性(String name ,String sex,int age)
Person p1=new Person("张三","男",20);
Person p2=new Person("李四","男",22);
Person p3=new Person("王五","男",24);

然后这些对象都储存在ArrayList集合里,如果只知道"李四"这个名字(在不知道性别和年龄的情况下),如何获取"李四"这个对象在ArrayList集合里的索引值(即1)?

for(int i = 0;i<list.size();i++) {
 if("李四".equales(list.get(i).getName())){
return i;//i就是索引
}
}

对象中的属性是有可能重复的, 对此很难判断到底哪个对象的索引是你想要的。
除非能确保你要查的属性值是唯一的。
如果此, 那也只能通过遍历比较了。

int index = 0;
for(int i = 0 ; i<Arraylist.size(); i++)
{
if("李四".equals(Arraylist.get(i).getName()))
{
index = i;
}
}
index 就是你要获得的下标

遍历整个ArrayList,把所有值相同的都取出来,用键值对的形式
for(int i = 0 ; i<Arraylist.size(); i++)
{
if("李四".equals(Arraylist.get(i).getName()))
{
Map.put(i,Arraylist(i));
}
}
这样就把所有想要的值和下标都放在Map中了