java.util.ArrayList.indexOf(Object) 方法返回指定元素的第一个匹配项的索引在此列表中,或者-1,如果此列表中不包含该元素。
声明
以下是java.util.ArrayList.indexOf()方法的声明
public int indexOf(Object o)
参数
o -- 要搜索的元素。
返回值
此方法返回指定元素的第一个匹配项的索引在此列表中,或者如果此列表中不包含该元素返回-1。
两个 Person 相等的条件是什么……如果不重写 equals 方法,按照基类 Object 的实现,两个 Person 相等当且仅当它们是同一个对象。显然 new 出来的是“新的”对象,也就是说后一次 new 出来的一定是和之前不同的对象,按照默认的规则,它和之前的对象都是“不相等”的。
没找到跟参数“相等”的对象,indexOf 就会返回 -1
因为你indexOf里是一个新的Person对象,尽管他的属性和第一个add进去的Person一样 , 但 他俩不是指向同一个对象,也就是 == 和 equals的区别