Suj*_*jee 9 java equals comparator treeset
有一个Java bean对象,它equals根据某些标准实现了功能(标准A).我需要根据其他标准识别唯一对象(标准B).由于该equals功能使用标准A,我无法使用HashSet.所以我考虑使用基于标准B的TreeSet我的自定义Comparator.我的问题是,是否允许这样做?这种方法有什么问题吗?
谢谢.
vod*_*ang 15
以下是Oracle Java的一些指南:
请注意,如果要正确实现Set接口,则由set维护的排序(无论是否提供显式比较器)必须与equals一致.(请参阅Comparable或Comparator以获得与equals一致的精确定义.)这是因为Set接口是根据equals操作定义的,但TreeSet实例使用compareTo(或compare)方法执行所有键比较,因此从集合的角度来看,通过这种方法被认为相等的密钥是相等的.集合的行为即使其排序与equals不一致也是明确定义的; 它只是不遵守Set接口的一般合同.
我认为在技术方面,不,你没有任何问题.但是,在编码,可读性和可维护性方面,你必须要小心,因为其他人可能会滥用或误解你在做什么
| 归档时间: |
|
| 查看次数: |
7993 次 |
| 最近记录: |