Skip to content

Commit 5060b9f

Browse files
authored
Update 01_Comparable.md
1 parent 0feb554 commit 5060b9f

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

ch03/01_Comparable.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
《《《 [返回首页](../README.md) <br/>
2+
《《《 [上一节](00_Comparison_and_Bounds.md)
3+
4+
### 可比较的
15

26
接口 `Comparable <T>` 包含一个可用于比较一个对象与另一个对象的方法:
37

@@ -57,8 +61,8 @@
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` 节给出了另一个与自然顺序不相等的类的例子。
@@ -78,7 +82,7 @@
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

@@ -95,7 +99,7 @@
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

@@ -144,6 +148,5 @@
144148

145149
但是当溢出时,这段代码可能会给出错误的答案。 例如,当比较大的负值和大的正值时,差异可能会大于可存储在整数 `Integer.MAX_VALUE` 中的最大值。
146150

147-
148-
149-
151+
《《《 [下一节](02_Maximum_of_a_Collection.md) <br/>
152+
《《《 [返回首页](../README.md)

0 commit comments

Comments
 (0)