Java集合框架

    javaSE包含了一组类和接口组成的java集合框架,其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问这些数据。其目标是提供一个处理对象集合的通用框架,减少程序员处理不同对象集合时的编码量。java集合框架将对象的存储方式分为三种类型,分别是:Set集:对象容器中的对象并没有顺序,且不能重复。List列表:对象容器中的对象按照索引顺序排序,而且可以有重复的对象。Map:对象容器中的元素包含一对“键对象-值对象”映射,其中键对象不能重复。值对象可以重复。这三种对象的存储方式对应了java集合框架中的三个核心接口Set,List和Map。List接口,它的特点如下:1.List中的元素是有顺序的。2.List通常允许重复的元素。3.List的实现类通常支持null元素。4.可以通过索引访问List对象容器中的元素。List接口中的方法:ArrayList和LinkedList。ArrayList,在概念上与数组类似,表示一组编入索引的元素。区别之处在于ArrayList没有预先确定的大小,其长度可按需增大。LinkedList,是实现了双向链表功能的列表,它将列表中的每个对象放在独立的空间中,而且每个空间还保存有上一个和下一个链接的索引。LinkedList不支持快速随机访问。LinkedList和ArrayList的选择。ArrayList采用数组的方式存储对象,这种方式将对象放在连续的位置,它有一个很大的缺点就是对它们进行删除或插入操作时非常麻烦。因为,如果要删除列表某个元素,那么这个元素之后的其他元素都必须向前挪动,而插入元素的时候,在插入之后的所有元素都必须向前挪动。所以,如果列表需要快速存取,但不经常进行元素的插入和删除操作,那么选择ArrayList会 好一些,如果需要对列表进行频繁的插入和删除操作,那么就应该选择LinkedList。

    泛型:所谓泛型就是允许在定义类、接口时指定类型形式参数,这个类型形式参数将在声明变量、创建对象时确定,即传入的实际参数。"<E>"就是类型形参,这就是泛型的实质:允许在定义接口、类时指定类型形参。于是我就可以说Collection、List、Set、Map是一个带有类型参数的泛型接口。对于带有类型参数的泛型接口和类,我们可以在声明变量和创建对象时,就要为E形参传入特定的类型实参。除了在声明集合类型变量和创建集合对象时,可以用泛型将参数类型化以外,我们还可以用泛型将类方法的形式参数类型化,同时还可以将方法的返回值类型化。引入泛型的目的就是为了减少编程时的错误,尽量将错误在编译时就发现,而不是遗留到运行时。

    Set接口。Set接口也继承自Collection接口,同时也继承了Collection接口的全部方法。Set类型容器中不能包含重复元素,当加入一个元素到容器中时,要比较元素的内容是否存在重复的,所以加入Set类型对象容器的对象必须重写equals()方法。元素可能有顺序,也可以没有顺序。因为元素可能没有顺序,所以不能基于索引访问Set中的元素。

posted on 2014-05-23 22:43  pandasun  阅读(184)  评论(0编辑  收藏  举报

导航