File tree Expand file tree Collapse file tree 1 file changed +10
-7
lines changed
Expand file tree Collapse file tree 1 file changed +10
-7
lines changed Original file line number Diff line number Diff line change 1+ 《《《 [ 返回首页] ( ../README.md ) <br />
2+ 《《《 [ 上一节] ( 00_Comparison_and_Bounds.md )
3+
4+ ### 可比较的
15
26接口 ` Comparable <T> ` 包含一个可用于比较一个对象与另一个对象的方法:
37
5761在这种情况下,我们说自然顺序与平等一致。
5862
5963建议您在设计课程时选择与平等一致的自然排序。如果在集合框架中使用接口 ` SortedSet ` 或 ` SortedMap ` ,这两个函数使用自然排序来比较项目,这一点尤其重要。
60- 如果两个比较相同的项目被添加到一个有序集合中,则只有一个将被存储,即使这两个项目不相等;排序地图也是如此。 (您也可以使用第3.4节中描述的比较器指定不同
61- 的排序以用于排序集合或排序映射 ;但在这种情况下,指定排序应该再次与等号一致)。
64+ 如果两个比较相同的项目被添加到一个有序集合中,则只有一个将被存储,即使这两个项目不相等;排序地图也是如此。 (您也可以使用第 ` 3.4 ` 节中描述的比较器指定
65+ 不同的排序以用于排序集合或排序映射 ;但在这种情况下,指定排序应该再次与等号一致)。
6266
6367` Java ` 核心库中几乎每个具有自然排序的类都与 ` equals ` 相一致。 ` java.math.BigDecimal ` 是一个例外,它将具有相同值但精度不同的两个小数进行比较,例如
6468` 4.0 ` 和 ` 4.00 ` 。 ` 3.3 ` 节给出了另一个与自然顺序不相等的类的例子。
7882 sgn(x. compareTo(y)) == - sgn(y. compareTo(x))
7983```
8084
81- 这概括了数字的属性:` x <y ` 当且仅当 ` y> x ` 。 当且仅当 ` y.compareTo(x) ` 引发异常时,还需要 ` x.compareTo(y) ` 引发异常。
85+ 这概括了数字的属性:` x <y ` 当且仅当 ` y> x ` 。 当且仅当 ` y.compareTo(x) ` 引发异常时,还需要 ` x.compareTo(y) ` 引发异常。
8286
8387其次,比较是传递性的。 如果一个值小于第二个,而第二个小于第三个,那么第一个小于第三个:
8488
9599```
96100
97101这概括了数字的属性:如果 ` x == y ` ,那么 ` x <z ` 当且仅当 ` y <z ` 。 据推测,如果 ` x.compareTo(y)== 0 ` ,那么 ` x.compareTo(z) ` 会引发异常,当且仅当
98- ` y.compareTo(z) ` 引发异常时,也需要这样做,尽管没有明确说明。
102+ ` y.compareTo(z) ` 引发异常时,也需要这样做,尽管没有明确说明。
99103
100104强烈建议比较与平等兼容:
101105
144148
145149但是当溢出时,这段代码可能会给出错误的答案。 例如,当比较大的负值和大的正值时,差异可能会大于可存储在整数 ` Integer.MAX_VALUE ` 中的最大值。
146150
147-
148-
149-
151+ 《《《 [ 下一节] ( 02_Maximum_of_a_Collection.md ) <br />
152+ 《《《 [ 返回首页] ( ../README.md )
You can’t perform that action at this time.
0 commit comments