equals()
方法可用於Object
類中的所有Java集合類。這個方法也在Comparator
接口中聲明,那麼在Comparator中聲明這個方法的目的是什麼?在這種情況下它是如何使用的?在比較器接口中使用equals()方法嗎?
回答
- 當聲明比較比較的另一個對象(參數)
什麼是宣佈在比較這種方法的目的是什麼?
我認爲這是它強調設計師的方式Comparator.equals()
強加實現該接口的任何類的一些additional requirements:
此外,該方法可以返回
true
僅當指定的對象也是一個比較器,並且它與這個比較器具有相同的順序。因此,comp1.equals(comp2)
意味着對於每個對象參考o1
和o2
的sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))
。
該方法可用於確定兩個不同的比較器是否強加相同的順序。
根據JavaDoc
需要注意的是總是安全不覆蓋的Object.Equals(對象)。 但是,在某些情況下,通過允許程序確定兩個不同的 比較器施加相同的順序,覆蓋此方法可能會提高性能。
這個想法只是爲了能夠讓您不會對已經被另一個比較器排序的集合進行排序,如果您意識到最終結果將是相同的。
通常它沒有什麼用處,但是當排序非常大的集合時,這是你可能想要研究的東西。
它只是Object的equals方法的一個覆蓋形式,讓您知道兩個對象是否具有相同的比較器類型。
我認爲主要原因是要說清楚equals
方法是測試Comparator
本身。當你考慮這一點時,這是顯而易見的,但是我可以想象有些人可能期望equals(Object)
(以某種方式)在語義上與compare(T, T)
方法相關。
它還允許將兩個比較器視爲相同時的一些常識指南的文檔。
無論哪種方式,出於文檔目的,接口中equals(Object)
方法的存在僅爲。
根據你的問題,我認爲它是用來比較對象在字符串轉換後。 對象類eqlas方法chek既對象是否eqls和競爭對象方法chek對象數據如Hello.eqlas(「你好」)
- 1. 比較字符串使用.equals()方法
- 2. 與Android中的equals()方法比較
- 3. 我可以用equals()方法比較多個字符串嗎?
- 4. 爲什麼equals()存在比較器,但不在Java中的Comparable接口中
- 5. 使用比較器接口的錯誤
- 6. Java接口比較器靜態比較
- 7. 可比較和比較器接口
- 8. 使用equals和hashCode方法比較對象的動態字段
- 9. 具有equals和hashCode方法的通用接口,有可能嗎?
- 10. 在java中實現比較器接口
- 11. equals方法在比較TextView字符串時不起作用
- 12. 實現比較器接口
- 13. 重寫equals方法:爲什麼使用方法來比較字段
- 14. toString,hashcode和equals方法內部接口
- 15. 其中.Equals()方法使用
- 16. 分配equals方法比較元素的ISet中
- 17. 返回比較器的比較方法使用雙?
- 18. 如何使用equals方法比較不同類別中的對象數組
- 19. 在通用方法中使用Equals
- 20. 使用可比性和比較器接口的
- 21. 使用.equals()的字符串比較在Java中不起作用。
- 22. 使用比較器聚合類似的對象與equals()不一致equals()
- 23. C#Assert.AreNotEqual與Equals的比較
- 24. 如何在JSP中使用equals()方法?
- 25. 在asp.net中使用.equals方法?
- 26. 使用IComparable接口比較int和long
- 27. 使用問題比較接口
- 28. Java使用可比較的接口
- 29. 使用單個比較器接口進行排序在Java
- 30. 在Java中使用通用靜態方法的可比接口