Java集合框架一:Collection接口

来源:互联网 发布:java判断闰年 编辑:程序博客网 时间:2024/06/06 01:05

Java集合框架一:Collection接口

Java集合框架中包含了大量集合接口,以及这些接口的实现类和操作它们的算法(例如排序、查找、反转、替换、复制、取最小元素、取最大元素等),具体而言,主要提供了List(列表)、Queue(队列)、Set(集合)、Stack(栈)和Map(映射表,用于存储键值对)等数据结构,其中,List,Queue,Set,Stack都继承自Collection接口。

      Collection是整个集合框架的基础,它里面存储了一组对象,表示不同类型的集合,它的作用只是提供维护一组对象的基本接口而已。在Java集合框架中最重要的3个接口是Set、List和Map。下面分别简要介绍这3个接口。

Set表示数学意义上的集合概念。其最主要的特点是集合中的元素不能重复,因此存入Set的每个元素都必须定义equals()方法来确保对象的唯一性。(这里顺便提一下equal()方法,Object默认提供的equals()只是比较对象的地址,String类的equals()方法判断两个字符串是否相等的标准是:只要两个字符串所包含的字符序列相同,通过equals()比较将返回true,否则将返回false。通常而言,正确地重写equals()方法应满足以下条件:1、自反性:对任意x,x.equals(x)一定返回true;2、对称性:对任意x和y,如果y.equals(x)返回true,则x.equals(y)也返回true;3、传递性:对任意x,y,z,如果x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)一定返回true;4、一致性:对任意x和y,如果对象中用于等价比较的信息没有改变,那么无论调用x.equal(y)多少次,返回的结果应该保持一致,要么一直是true,要么一直是false;5、对任意不是null的x,x.equals(null)一定返回false)该接口有两个实现类:HashSet和TreeSet,其中TreeSet实现了SortedSet接口,因此TreeSet容器中的元素是有序的。

      List又称为有序的Collection,它按对象进入的顺序保持对象,所以它能对列表中的每个元素的插入和删除的位置进行精确的控制。同时,它可以保存重复的对象。LinkedList、ArrayList和Vector都实现了List接口。

      Map提供一个从键映射到值的数据结构,它用于保存键值对,其中键是唯一的,但是值是可以重复的。Java集合框架中提供了很多实现该接口的类,如HashMap、TreeMap、LinkedHashMap、WeakHashMap、IdentityHashMap。虽然它们都实现了相同的接口,但执行效率却并不完全相同。具体而言,HashMap是基于散列表实现的,采用对象的HashCode可以进行快速查询;LinkHashMap采用列表来维护内部顺序;TreeMap是基于红黑树的数据结构来实现的,内部是按需排列的。

Collection的框架类图如下所示:


                                            图1 list



                                             图2:set


 


                                        图3:queue




                                           图4:map

注:UML类图是用亿图画的,这里空心三角表示泛化关系,即继承关系;实心圆点表示接口实现;蓝色为接口,绿色为实现类

 

原创粉丝点击