黑马程序员:集合框架

      ---------------------- 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培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值