- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白怎么办NavigableMap.floorEntry()
和ceiling Entry()
工作。
Oracle 只是简单地写了 ceilingEntry(key) :
Returns a key-value mapping associated with the least key greater than or equal to the given key, or null if there is no such key.
通过实验,我了解到如果我定义 NavigableMap
使用整数键 ( NavigableMap<Integer, Anything>
), floorEntry(keyArg)
和ceilingEntry(keyArg)
始终返回具有给定参数 (keyArg)*
的条目
我明白 - 它的工作原理类似于 floor and ceiling functions in math :这些函数返回最接近的整数(如果给定的不是整数参数),给定整数参数,它们总是返回这个给定论据。
我认为(基于数学中的下限/条目定义)下面的代码片段将返回 "integer"
1.0
, 2.0
等
双2.0
不是整数。但是ceilingEntry(keyArg)
对于整数键没有用,如果它也不适用于双键(也返回其参数键)那么它是如何使用的,它的用途和工作用例是什么?
NavigableMap<Double, String> m = new TreeMap<>();
m.put(1.3, "hey");
m.put(1.5, "hey2");
m.put(1.62, "hey3"); // not this
m.put(1.6, "hey3"); // argument given to ceilingEntry
m.put(1.68, "hey3"); // not this
m.put(1.7, "hey4"); // not this
m.put(2.0, "hey4"); // not this
m.put(1.0, "hey4");
m.put(3d, "hey4"); // not this
m.put(0d, "hey4");
// WHAT THEN ???
System.out.println(m.ceilingEntry(1.6)); // OUTPUT: 1.6=hey3
// I guess, to get something different from argument
//I shall give something not equal to any key as argument
System.out.println(m.ceilingEntry(1.601)); // 1.62=hey3
我明白了。无论键类型是什么,如果映射中已经存在这样的键,ceilingEntry 将简单地返回其参数。
仅当给定参数不存在于映射中(作为键)时,它才会返回任何不同的内容。在这种情况下,ceilingEntry将返回映射中最接近的键(在ceilingEntry的情况下 - 按升序搜索(朝向正无穷大))。
所以它与纯数学完全不同 floor/ceiling
- java 不寻找最接近的整数,java 正在寻找最接近的现有 key 。 Java 并不关心这个最接近的键是整数还是 0.000786
(最接近 0.000785
或 0.7
等参数)
最佳答案
floorEntry()
和 ceilingEntry()
的工作方式类似于 Math.floor()
和 Math.ceiling()
按以下方式:
数学:
Integers:
1
2 <-- floor(2.5) = 2
<-- Key: 2.5
3 <-- ceil(2.5) = 3
4
同样,NavigableMap:
Entries:
Alice
Barry <-- floor(Bert) = Barry
<-- Key: Bert
Constance <-- ceil(Bert) = Constance
Dan
关于java - NavigableMap.ceiling Entry() 到底是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48507424/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!