|
3 | 3 |
|
4 | 4 | ## Sets
|
5 | 5 |
|
6 | | -一个集合是不能包含重复项目的集合; 如果它已经存在于集合中,则添加它不起作用。`Set` 接口的方法与 `Collection` 的方法相同,但它是分开定义的,以允许以这种方式更改 `add`(和 `addAll`,这是用 `add` 定义的)合约。 回到上一章中的任务管理器示例,假设星期一您有空闲时间执行电话任务。 您可以通过将所有电话任务添加到星期一任务来进行相应的收集。 让 `mondayTasks` 和 `phone` 任务如例 `12-1` 中所声明的那样。 使用一个集合(再次选择一个方便常见的 `Set` 实现),你可以写: |
| 6 | +一个集合是不能包含重复项目的集合; 如果它已经存在于集合中,则添加它不起作用。`Set` 接口的方法与 `Collection` 的方法相同,但它是分开定义的,以允许以这种 |
| 7 | +方式更改 `add`(和 `addAll`,这是用 `add` 定义的)合约。 回到上一章中的任务管理器示例,假设星期一您有空闲时间执行电话任务。 您可以通过将所有电话任务添 |
| 8 | +加到星期一任务来进行相应的收集。 让 `mondayTasks` 和 `phone` 任务如例 `12-1` 中所声明的那样。 使用一个集合(再次选择一个方便常见的 `Set` 实现),你 |
| 9 | +可以写: |
7 | 10 |
|
8 | 11 | ```java
|
9 | | -Set<Task> phoneAndMondayTasks = new TreeSet<Task>(mondayTasks); |
10 | | -phoneAndMondayTasks.addAll(phoneTasks); |
11 | | -assert phoneAndMondayTasks.toString().equals("[code logic, phone Mike, phone Paul]"); |
| 12 | +Set<Task> phoneAndMondayTasks = new TreeSet<Task>(mondayTasks); |
| 13 | +phoneAndMondayTasks.addAll(phoneTasks); |
| 14 | +assert phoneAndMondayTasks.toString().equals("[code logic, phone Mike, phone Paul]"); |
12 | 15 | ```
|
13 | 16 |
|
14 | | -这是因为处理重复元素的方式。 在星期一任务和电话任务中的任务麦克电话,只有一次出现在 `phoneAndMondayTasks 中 - 你绝对不希望两次完成所有这些任务! |
| 17 | +这是因为处理重复元素的方式。 在星期一任务和电话任务中的任务麦克电话,只有一次出现在 `phoneAndMondayTasks` 中 - 你绝对不希望两次完成所有这些任务! |
15 | 18 |
|
16 | 19 | 《《《 [下一节](01_Implementing_Set.md) <br/>
|
17 | | -《《《 [返回首页](../README.md) |
| 20 | +《《《 [返回首页](../README.md) |
0 commit comments