下面是一些代码,可以看到迷宫中是否存在从左上角到右下角的路径。我对此代码的疑问是我们检查failedPoints.contains(p)
:我们怎么能得到true
?
在我们if(failedPoints.contains(p))
之前,我们正在创建一个新的Point
对象。即使新的Point
对象与row
中的另一个col
具有相同的Point
和failedPoints
值,对象也会有所不同,所以不应该{ {1}}始终返回failedPoints.contains(p)
?
false
答案 0 :(得分:2)
这取决于Point
类的定义。
看看the HashSet.contains Javadocs:
public boolean contains(Object o)
如果此set包含指定的元素,则返回true。更正式地,当且仅当此集合包含元素e时才返回true(o == null?e == null:o.equals(e))。
因此,如果Point
类定义了equals
方法,该方法检查其行和列是否与另一个点的行和列相同(并且还定义了hashCode不破坏契约的方法),如果另一个failedPoints.contains()
等于被测试的Point
,则[HttpGet]
public IActionResult Get()
{
string token = Request.Headers["Authorization"];
// Validate token.
}
[HttpPost]
public IActionResult Post(int id)
{
string token = Request.Headers["Authorization"];
// Validate token.
}
将返回true。