为什么 NavigableSet JavaDoc如果仅是接口,则说明性能指标?
如果从理论上讲,该接口不知道有关其实现的详细信息,那么NavigableSet接口如何描述:
“上升操作和视图的性能可能比下降操作和视图的性能更快。”
有类似的帖子here,但是 ConcurrentSkipListSet 是实现类。
答案 0 :(得分:3)
在Java中没有强制执行这种行为的“真正”方法,因此该文档用于从性能的角度描述接口的预期行为。
这对于两个方面都很重要。
首先,作为该接口(或实现该接口的任何类)的用户,您应该了解此性能注意事项,并相应地编写代码。例如,在您引用的paragrpah中,应注意的是“上升操作和视图的性能可能比下降操作和视图的性能更快”。这意味着,如果您要遍历NavigableSet
,则可能应该从头到尾进行遍历,而不是反过来进行遍历(即使两者都可以使用!)。
第二,作为此接口的实现者,您应该意识到这是期望,并且该接口的用户可能已经编写了代码来考虑这种行为(如上一段所述)。这意味着,例如,您可以实施NavigatableSet
,其中降序运算的性能要好于其升序运算的性能,但您可能不应该-这不是用户期望此类工作的方式。