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