标签:
Java SE 包含了由一组类和接口组成的Java集合框架(Java Collection Framework,简称JCF),其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问这些数据,其目标是提供一个处理对象集合的通用框架,减少程序员处理不同的对象集合时的编码量,而Java集合类都位于java.util包中。
接下来就简单的谈下JCF类的内容。首先Java集合框架将对象的存储方式分为三种类型,分别是:Set(集)、List(列表)、Map(映射)。
Set(集):对象容器中的对象没有顺序,且不能重复,对应接口Set;Set接口继承自Collection接口的全部方法,对于我们这些Java初学者来说,需要先掌握Set接口下的HashSet类和TreeSet类。
HashSet类的特点是:当遍历HashSet时,其中的元素是没有顺序的;HashSet中不允许出现重复元素,这里的重复元素是指有相同的哈希码,并且用equals()方法进行比较时,返回true的两个对象;允许包含null元素。
TreeSet类使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。也就是说,TreeSet支持自然排序和自定义排序两种方式。默认情况下,TreeSet采用自然排序方式。
List(列表):List中的元素是有顺序的;List通常允许重复元素;List的实现类通常支持null元素;可以同过索引访问List对象容器中的元素。我们需要先掌握该接口下的ArrayList类和LinkedList类。
ArrayList类在概念上和数组类似,表示一组编入索引的元素,区别之处在于ArrayList没有预先确定的大小,其长度可按需增大。
LinkedList类是实现了双向链表功能的列表,它将列表中的每个对象放在独立的空间里中,而且每个空间中还保存有上一个和下一个链接的索引;LinkedList不支持快速随机访问,如果要访问LinkedList中第n个元素,必须从头开始查找,然后跳过前面的n-1个元素。并且,虽然LinkedList也提供了一个get()方法,可以根据指定的索引来获取对应的元素,但是正因为它不支持快速随机访问,所以效率比较低下。
Map(映射):是Java集合框架中不同于Collection接口的另一个重要接口,它对应的是在一种从键(key)到值(value)的对应关系的集合。也就是说,Map类型的对象容器里面保存着两组对象,一组对象用于保存Map里的key,另外一组用于保存value。key和value可以是任何引用类型的数据。key不能重复,但是value可以重复。我们需要先掌握HashMap类和TreeMap类。
HashMap类是基于哈希算法的Map接口的实现。HashMap将它的键保存在哈希表中进行维护,键是唯一的。但是,HashMap并不保证键以特定顺序排列,特别是不保证顺序永久不变。
TreeMap类是基于红黑树算法的Map接口实现。TreeMap中键的存放方式与TreeSet相似,它将键存放在树中,键的顺序按照自然顺序或者自定义顺序两种方式排列。
标签:
原文地址:http://www.cnblogs.com/lxdblog/p/4439137.html