<!-- ========== METHOD SUMMARY =========== -->
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
做为容器家族的长老级人物,个人觉得研究一下Collection还是有必要的,下面是Collection中的方法摘要,其中包括继承自Object的方法(注:Collection并没有显示的继承于Object,而继承于Iterable,同时Iterable也非继承于Object,网上有说自动继承于Object,同时给出了 权威的出处,一时间找不到了)
方法摘要 | |
---|---|
boolean | add(Ee) 确保此 collection 包含指定的元素(可选操作)。 |
boolean | addAll(Collection<? extends E>c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 |
void | clear() 移除此 collection 中的所有元素(可选操作)。 |
boolean | contains(Objecto) 如果此 collection 包含指定的元素,则返回 true。 |
boolean | containsAll(Collection<?>c) 如果此 collection 包含指定 collection 中的所有元素,则返回 true。 |
boolean | equals(Objecto) 比较此 collection 与指定对象是否相等。 |
int | hashCode() 返回此 collection 的哈希码值。 |
boolean | isEmpty() 如果此 collection 不包含元素,则返回 true。 |
Iterator<E> | iterator() 返回在此 collection 的元素上进行迭代的迭代器。 |
boolean | remove(Objecto) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 |
boolean | removeAll(Collection<?>c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 |
boolean | retainAll(Collection<?>c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。 |
int | size() 返回此 collection 中的元素数。 |
Object[] | toArray() 返回包含此 collection 中所有元素的数组。 |
|
<T> T[]
toArray(T[]a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
值得注意的是,其实不包括访问元素的get()方法,主要是因为Collection包括Set,而Set是自己维护内部顺序的(这使得随机访问是没有意义的)。因此,如果想检查Collection中的元素,那就必须使用迭代器。
提到迭代器让我想起了一个问题,如上文的addAll方法,继承于Collection的容器可以将另一种继承于Collection的容器向上转型,然后通过迭代器来遍历,添加到该容器,这是一种适配器的设计模式。这样就方便了不同Collection子集的数据传递。
看看这个标题又想起一个问题,面试的时候经常为问到Collection与Collections的区别,大三来IBM实习的时候就被问到了,其实很简单,Collection我就不说了,Collections就类似于Arrays,是容器的一个工具类。