`
kaka2008
  • 浏览: 91625 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Collection总结

    博客分类:
  • java
阅读更多
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

Java容器的简图(不包含抽象类和遗留构件),这里只包含在一般情况下会碰到的接口和类
(图片暂时还没传)

你可以看到,其实只有四种容器:Map、List、Set和Queue,它们各有两个到三个实现版本(Queue的java.uti.concurrent实现没有包括在这张图中)
常用的容器有:HashMap、ArrayList、LinkedList、HashSet
接口:Iterator , Collection , Map , ListIterator , List , Set , Queue , Comparable , Comparator
普通的类: HashMap,TreeMap,ArrayList,LinkedList,PriorityQueue,LinkedHashMap,HashSet,
TreeSet,LinkedHashSet,Collections,Array
List,Set,Queue 实现 Collection
ArrayList,LinkedList 实现 List
HashSet,TreeSet,LinkedHashSet 实现 Set
LinkedHashSet 继承 HashSet
HashMap,TreeMap,LinkedHashMap 实现 Map
LinkedHashMap 继承 HashMap
LinkedList,PriorityQueue 实现 Queue

Collection可以生成Iterator对象
List 可以生成ListIterator对象
Map 可以生成 Collection对象(Map的keySet(),values(),entrySet()方法)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics