java持有对象总结(各种容器简介)
最近又看了《Thinking in Java》一书,其中关于持有对象部分的总结非常好,现将其在下面分享!java提供了大量持有对象的方式:
1、数组将数字与对象联系起来,他保存类型明确的对象,查询对象时,不需要对结果做类型转换。他可以是多维的,可以保存基本类型的数据。但是,数组一旦生成,其容量就不能改变。
2、 Collection保存单一的元素,而Map保存相关联的键值对。有了java的泛型,程序员就可以指定容器中存放的对象类型。因此程序员就不会将错误类型的对象放到容器中,并且在容器中获取元素时,不必进行类型转换。各种Collection和各种Map都可以在程序员向其中添加元素时,自动调整其尺寸。容器不能持有基本类型,但是自动包装机制会将基本类型和容器存放的类型进行转换。
3、像数组一样,List也建立数字索引与对象的关联。他们的区别是List能够自动扩充容量,而数组不能。
4、如果要进行大量的随机访问,就是用ArrayList;如果需要经常从表中间插入或删除元素,则应该使用LinkedList。
5、各种Queue以及栈的行为,有LinkedList提供支持。
6、Map是一种将对象(非数字)与对象先关联的设计。HashMap设计用来快速访问;而TreeMap保持“键”始终处于排序状态,所以没有HashMap快。LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力。
7、Set不接受重复元素。HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保存元素。
8、新程序中不应该使用过时的Vector、Hashtable和Stack。
页:
[1]