1
6
关键是,给定适当的原语操作(remove、set等),可以实现一系列更高级的操作(sort、shuffle、binary search) 一旦 实际上,java.util.Collections类似于.NET的可枚举类—充满了可用于任何集合的通用方法,因此它们可以共享单个实现并避免重复。 |
2
5
列表接口方法背后的Rational
|
3
3
每一个 该接口的实现者必须编写代码来实现它。 如果该方法的语义使得接口的不同实现能够以非常不同的方式最好地实现这些语义,那么最好将其放在接口中(当然,如果语义不能用接口中的其他方法来定义,那么 必须 在接口中有自己的方法。) 另一方面,如果语义可以用接口中的其他方法来定义,而接口的实现者只会一遍又一遍地编写相同的代码,那么最好创建一个实用方法,将接口的实例作为参数。 |
4
2
它们是实用方法,而不是核心列表功能。如果在列表中添加所有可能的操作,列表界面就会变得臃肿。集合中的操作不需要知道列表的内部结构,它们在公共接口上操作,因此可以愉快地生活在外部类中。 |
5
2
这里有两种解释:
|