- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
标题说明了一切...我想知道为什么当我通过例如创建 NavigableSet
的子集时headSet(E toElement)
,我得到一个 SortedSet
,并以 boolean Include
作为参数,即 headSet(E toElement,包含 boolean 值)
,我得到一个 NavigableSet
。
我知道 NavigableSet
扩展了 SortedSet
,并且 SortedSet
有一个方法 headSet(E toElement)
返回a SortedSet
,但为什么他们不决定更改子接口(interface)中的返回类型?或者还返回一个带有新添加的 headSet(E toElement, boolean Included)
的 SortedSet
,只是为了保持一致?
返回的集合只是在是否包含 toElement
方面有所不同,所以我不明白为什么它们应该具有不同的类型。
最佳答案
因为 boolean 值inclusive
表示高端端点是否包含在返回的 View 中。
要检索也包含最高结束点的 Set,将调用 subset
方法,该方法返回 SortedSet
这就是您获得实例的原因。
您调用的方法headSet
将调用其中的subSet
,因为您指定它是包含的。
如果您认为,如果您想处理查找最高/较低值等问题,那么使用排序集会更容易,这是合乎逻辑的。
编辑: javadoc 确实解释了这一点,感谢 @laune 指出了这一点:
Methods subSet(E, E), headSet(E), and tailSet(E) are specified to return SortedSet to allow existing implementations of SortedSet to be compatibly retrofitted to implement NavigableSet, but extensions and implementations of this interface are encouraged to override these methods to return NavigableSet.
关于java - 为什么 "boolean inclusive"版本的 NavigableSet 返回 NavigableSet,而那些没有 "boolean inclusive"版本的 NavigableSet 返回 SortedSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28546708/
标题说明了一切...我想知道为什么当我通过例如创建 NavigableSet 的子集时headSet(E toElement),我得到一个 SortedSet,并以 boolean Include 作
我正在寻找与 ConcurrentSkipListSet 完全相同的特定数据结构但没有线性 size - 操作,对于较大的集合可能会经常调用。 我知道 Collections.synchronized
如何使用tailSet()和headSet()对于NavigableSet ?并且还实现自己的规则,哪些元素有资格获得尾部或耳机? 喜欢: class MyType { String name;
这是代码: Score alpha = new Score(1,91); Score beta = new Score(1,81); Score gamma = new Sco
我有一个 NavigableSet,我想获取它的中间对象。 由于它是一个 NavigableSet,我知道它是已排序的,因此我知道它的中位数要么是中间元素,要么是两个中间元素的算术中间。 因此,我想访
当我使用 NavigableSet 获取 TreeMap 的降序键集时出现以下错误: [ERROR] [workflow] - Line 159: No source code is availabl
这是我的代码: 导入java.util.*; public class AnotherBackedCollectionsTest{ public static void main(String...
keySet() 返回 java.util.Set。为什么不转换为 NavigableSet 抛出 ClassCastException?如果真实对象是具有 java.util.Set 引用的 Tre
为什么NavigableSet JavaDoc如果它只是一个接口(interface),请说明性能指标? 如果理论上接口(interface)不知道其实现的细节,NavigableSet 接口(int
java.util.Collections 有几个 unmodifiable 方法,它们通过将集合包装在禁止突变操作的装饰器中来提供不可修改的 Collection View 。 Java 6 添加了
这似乎是一个奇怪的问题,但我有点困惑:在 Java 中,方法 NavigableSet.tailSet(Object) 应该返回一个 SortedSet,而 tailSet(Object, boole
我有一组对象: NavigableSet set = new TreeSet(); 然后当我在另一个类(class)中这样做时: GroupMesin.JobWithDepartTime a = g
我有一个方法需要 Collection其中Object可以是String或CustomClass 。然后,它获取集合中的每个元素并将其传递给参数为 Object 的方法。像这样: public voi
NavigableSet API docs声明方法 headSet、tailSet(E)、headSet(E) 和 subSet(E, E) 返回一个NavigableSet。 在 Eclipse 中
NavigableSet接口(interface)提供了许多有用的方法,普通的 Set不会(具体来说,我正在考虑像 headSet 和 tailSet 这样的方法)。但是,作为 Set,它不支持重复元
我有一个: String s = "ab" + Character.MAX_VALUE + Character.MAX_VALUE + Character.MAX_VALUE + "cd"; 我们将其
在尝试从集合中检索元素时,我更喜欢使用 pollFirst() 因为它减少了笨重的命题并有助于在检索后删除元素。为了迭代集合,我使用了通用的“for”方法,该方法只允许检索集合的一部分。我做了一些搜索
这个问题已经有答案了: In Java when one interface extends another, why would one redeclare a method in a subint
我是一名优秀的程序员,十分优秀!