您的位置:首页 > 职场人生

黑马程序员:集合框架

2011-11-07 15:20 302 查看
      ---------------------- android培训java培训、期待与您交流! ----------------------
最近几天学习了集合框架的相关知识,现在来总结一下:

集合框架由一组用来操作对象的接口组成,不同接口描述不同类型的组,java容器类定义了两个:collection和map。

Collection :一组对立的元素,通常这些元素都服从某种规则。如 Set:对象之间没有指定的顺序,不允许重复元素; List:对象之间有指定的顺序,允许重复元素,并引入位置下标。

Map :一组 成对的“键值对”对象。就像一个小型数据库。我们可以通过“键”找到该键对应的“值”。

java中还有六个集合实现:如下表所示:

接口
实现
历史集合类
Set
HashSet
 
 
TreeSet
 
List
ArrayList
Vector
 
LinkedList
Stack
Map
HashMap
Hashtable
 
TreeMap
Properties
在这些容器中海设计到一个迭代器,Iterator,它的工作就是遍历并选择集合序列中的对象,并返回Iteraor对象。

下面就六个集合实现做个介绍:

HashSet:通过创建一个HashSet容器,将数据添加进容器,用迭代器遍历便可获得存入的数据,可是输入的结果却和存入的顺利没有任何关系。

TreeSet:同HashSet存入数据的操作是一样的,可是输出结果却是有序的,因为TreeSet要实现 Comparable 接口的支持。通过比较来按自然顺序输出。

Vector:现在已经不经常使用了,因为它已经被替代了。

ArrayList:提供快速的基于索引的成员访问,对尾部成员的增加和删除支持较好。

LinkList::对列表中任何位置的成员的增加和删除支持较好,但对基于索引的成员访问支持性较差。其中

List 接口不但以位置友好的方式遍历整个列表,还能处理集合的子集:
1:ListIterator listIterator() :返回一个ListIterator 跌代器,默认开始位置为0
2: ListIterator listIterator(int startIndex) :返回一个ListIterator 跌代器,开始位置为startIndex

3:List subList(int fromIndex, int toIndex) :返回一个子列表List ,元素存放为从 fromIndex 到toIndex之前的一个元素。
HashMap,TreeMap:能满足用户对map的通用需求,支持对键有序的遍历,使用时建议先用hashMap增加和删除成员,最后从HashMap生成TreeMap。
LinkedHashMap:保留键的插入顺序,用equals 方法检查键和值的相等性.
另外:HashMap的存入顺序和输出顺序无关。而LinkedHashMap 则保留了键值对的存入顺序。TreeMap则是对Map中的元素进行排序。在实际的使用中我们也经常这样做:
使用HashMap或者LinkedHashMap 来存放元素,当所有的元素都存放完成后,如果使用则是需要一个经过排序的Map的话,我们再使用TreeMap来重构原来的Map对象。这样
做的好处是:因为HashMap和LinkedHashMap 存储数据的速度比直接使用TreeMap 要快,存取效率要高。当完成了所有的元素的存放后,我们再对整个的Map中的元素进行
排序。这样可以提高整个程序的运行的效率,缩短执行时间。
这里需要注意的是,TreeMap中是根据键(Key)进行排序的。而如果我们要使用TreeMap来进行正常的排序的话,Key 中存放的对象必须实现Comparable
接口。
 
 
各个容器类的方法有多种,大家可以参阅API文档来查找需要的功能,谢谢!
 

 

                                                       ----------------------
android培训、java培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息