mirror of
https://github.com/LingCoder/OnJava8.git
synced 2026-09-06 06:45:05 +08:00
校订第十二章 集合
This commit is contained in:
@@ -137,7 +137,7 @@ Braeburn@4e25154f
|
||||
|
||||
因此,可以将 **Apple** 的子类型添加到被指定为保存 **Apple** 对象的集合中。
|
||||
|
||||
程序的输出是从 **Object** 默认的 **toString()** 方法产生的,该方法打印类名,后边跟着对象的散列码的无符号十六进制表示(这个散列码是通过 **hashCode()** 方法产生的)。将在[附录:理解equals和hashcode方法]()中了解有关散列码的内容。
|
||||
程序的输出是从 **Object** 默认的 **toString()** 方法产生的,该方法打印类名,后边跟着对象的散列码的无符号十六进制表示(这个散列码是通过 **hashCode()** 方法产生的)。将在[附录:理解equals和hashCode方法]()中了解有关散列码的内容。
|
||||
|
||||
<!-- Basic Concepts -->
|
||||
## 基本概念
|
||||
@@ -1789,13 +1789,18 @@ Serializable]
|
||||
|
||||
尽管存在这些问题,但Java集合仍是在日常工作中使用的基本工具,它可以使程序更简洁、更强大、更有效。你可能需要一段时间才能熟悉集合类库的某些方面,但我想你很快就会找到自己的路子,来获得和使用这个类库中的类。
|
||||
|
||||
[^1]: 许多语言,例如Perl,Python和Ruby,都有
|
||||
集合的本地支持。
|
||||
[^1]: 许多语言,例如Perl,Python和Ruby,都有集合的本地支持。
|
||||
|
||||
[^2]: 这里是操作符重载的用武之地,C++和C#的集合类都使用操作符重载生成了更简洁的语法。
|
||||
|
||||
[^3]: 在[泛型]()章节的末尾,有个关于这个问题是否很严重的讨论。但是,[泛型]()章节还将展示Java泛型远不止是类型安全的集合这么简单。
|
||||
|
||||
[^4]: **remove()** 是一个所谓的“可选”方法(还有一些其它的这种方法),这意味着并非所有的 **Iterator** 实现都必须实现该方法。这个问题将在[附录:集合主题]()中介绍。但是,标准Java库集合实现了 **remove()** ,因此在[附录:集合主题]()章节之前,都不必担心这个问题。
|
||||
|
||||
[^5]: 这实际上依赖于具体实现。优先级队列算法通常会按插入顺序排序(维护一个*堆*),但它们也可以在删除时选择最重要的元素。 如果对象的优先级在它在队列中等待时可以修改,那么算法的选择就显得很重要了。
|
||||
|
||||
[^6]: 有些人提倡这样一种自动创建机制,即对一个类中所有可能的方法组合都自动创建一个接口,有时候对于单个的类都是如此。 我相信接口的意义不应该仅限于方法组合的机械地复制,因此我在创建接口之前,总是要先看到增加接口带来的价值。
|
||||
|
||||
[^7]: 这在Java SE5之前是不可用的,因为该方法被认为与操作系统的耦合度过紧,因此违反“一次编写,处处运行”的原则。现在提供它这一事实表明,Java的设计者们更加务实了。
|
||||
|
||||
<!-- 分页 -->
|
||||
|
||||
Reference in New Issue
Block a user