java中的list.indexof

list.add(newPerson(123,"zhang"));list.add(newPerson(12634,"wang"));list.add(newPerson... list.add(new Person(123,"zhang"));
list.add(new Person(12634,"wang"));
list.add(new Person(1234,"sad"));
list.add(new Person(1235,"4"));
list.add(new Person(1253,"5"));

System.out.println(list.indexOf(new Person(123,"zhang")));

为什么输出是-1 。。。。不应该是0吗。
展开
 我来答
千锋教育
2016-01-14 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
java.util.ArrayList.indexOf(Object) 方法返回指定元素的第一个匹配项的索引在此列表中,或者-1,如果此列表中不包含该元素。
声明
以下是java.util.ArrayList.indexOf()方法的声明
public int indexOf(Object o)

参数
o -- 要搜索的元素。
返回值
此方法返回指定元素的第一个匹配项的索引在此列表中,或者如果此列表中不包含该元素返回-1。
匿名用户
2015-07-22
展开全部
两个 Person 相等的条件是什么……如果不重写 equals 方法,按照基类 Object 的实现,两个 Person 相等当且仅当它们是同一个对象。显然 new 出来的是“新的”对象,也就是说后一次 new 出来的一定是和之前不同的对象,按照默认的规则,它和之前的对象都是“不相等”的。

没找到跟参数“相等”的对象,indexOf 就会返回 -1
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-01-15
展开全部
因为你indexOf里是一个新的Person对象,尽管他的属性和第一个add进去的Person一样 , 但 他俩不是指向同一个对象,也就是 == 和 equals的区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式