java – 为什么ConcurrentSkipListSet.contains需要比较器而不
我使用ConcurrentSkipListSet并使用contains方法. 根据JAVA doc for contains方法 如果此set包含指定的元素,则返回true.更正式地说,当且仅当此集合包含o.equals(e)的元素e时才返回true. 但根据我的测试,似乎不使用equals方法,而是比较器是强制性的.请帮助我理解JAVA规范和实现之间的这种异常 ConcurrentSkipListSet / ** at java.util.concurrent.ConcurrentSkipListMap.comparable(ConcurrentSkipListMap.java:663) 我正在使用Oracle JDK 7 最佳答案
我认为有两个问题/关注点,(1)为什么包含需要Comparator或Comparable. (2)Javadoc说它将使用equals方法.
> ConcurrentSkipListSet是可导航的有序集合,因此所有元素必须保持自然顺序,或者必须指定比较器. 编辑:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |