总结
- 数组将数字与对象联系起来:它保存类型明确的对象,查询对象时,不需要对结果做类型转换;它可以时多维的,可以保存基本类型的数据;但是,数组一旦生成,其容量不能改变
- Collection保存单一的元素,而Map保存关联的键值对:有了Java泛型,你就可以指定容器中存放的对象类型,因此你就不会将错误类型的对象放置到容器中,并且在从容器中获取元素时,不必进行类型转换;各种-
Collection和Map都可以在你向其中添加更多的元素时,自动调整其尺寸;容器不能持有基本类型,但是自动包装机制会仔细地执行基本类型到容器中所持有包装器类型之间的双向装换 - 像数组一样,List也建立数字索引与对象的关联,因此,数组和List都是排好序的容器;List能够自动扩充容量
- 如果要进行大量的随机访问,就使用ArrayList;如果要经常从表中间插入或删除元素,则应该使用LinkedList
- 各种Queue以及栈的行为,由LinkedList提供支持
- Map是一种将对象(而非数字)与对象相关联的设计:HashMap设计用来快速访问;TreeMap保持“键”始终处于排序状态,所以没有HashMap快;LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力
- Set不接受重复元素:HashSet提供了最快的查询速度;TreeSet保持元素处于排序状态;LinkedHashSet以插入顺序保存元素
- 新程序中不应该使用过时的Vector,Hashtable和Stack