【发布时间】:2020-07-08 10:34:44
【问题描述】:
我想创建一个坐标列表并能够检查该列表是否包含新坐标。
我已经尝试实现Pair,但是使用List.contains() 和Pair 不起作用,总是返回false。
我可以使用哪些其他对象来检查List.contains()?
【问题讨论】:
-
List.contains迭代列表项,查找使用equals(Object)匹配的元素。您可以使用任何正确实现equals(Object)的类(它也应该有hashCode()的相应实现,尽管List.contains没有使用它)。请出示您的Pair班级。 -
Pair 本身仍然需要实现 equals 和 hashcode btw。请显示重现问题的代码。配对课程对我来说似乎毫无价值,我会用 x 和 y 字段制作一个坐标类,或者如果我不想制作自己的课程,则使用 2 元素数组。
-
你能添加对
List.contains失败的代码吗? -
你必须实现 hashcode & equals 才能可靠地工作。
-
还可以考虑使用HashSet。
标签: java list immutability contains