您的位置:首页 > 编程语言 > Java开发

JAVA基础——集合框架

2015-11-14 21:12 295 查看
一、概述:

    集合框架从总体上可以认为它是一个容器,不同的集合框架可以利用相应的数据结构存放相应的数据。底层的数据结构大致分为如下几种:数组、链表、二叉树和哈希表等。根据各集合类间相应的所属关系,我画了如下的思维导图,下面依据思维导图对其中的相关类和接口做说明。

二、思维导图:



三、数据结构特点:

    1、ArrayList底层的数据结构为数组结构,LinkedList底层的数据结构为链表结构的,Vector底层的数据结构也是数组结构的,一般情况ArrayList可以取代Vector,相对于LinkedList底层的链表结构来说,数组结构查询元素要快很多,但是对于增删元素链表结构要比数组元素快。对于不是频繁进行增删操作的数据存储一般还是选择底层为数组的ArrayList。由此可以认识到对于实现List接口的类共性特点为:元素有索引,元素是有序的,在同一个集合中元素可以重复存在!

    2、HashSet底层的数据结构为哈希表,TreeSet底层的数据结构为二叉树,由于其底层数据结构特点可以看出实现Set的类的特点为:元素是无序的,而且元素是不可重复的,如果遇到需要排序的元素集合的情况,就可以考虑用底层数据结构为二叉树的TreeSet集合类。

    3、Map接口的元素与Collection不同,Map中的元素是以键值对的形式存在的;  Hashtable和HashMap底层的数据结构都为哈希表结构,差别在于Hashtable不允许用null做其元素,而HashMap可以;TreeMap底层为二叉树结构。由其底层的数据结构可以看出Map和Set是相对应的,其实Set底层就是使用了Map的数据结构特性。

四、元素操作:

    由于开篇说过可以把集合看做一个实物容器,根据集合框架的这个特点可以将其对元素的操作分为几个部分:增添、删除、改变、查询(证)、获取;对于前四种操作各个集合大同小异,集合提供相应的方法来操作集合。

    对于集合中元素的获取,Collection接口下的子类用的是迭代器Iterator,通过迭代器的相应的方法来对集合中的元素做相应的操作;由于Map底层数据结构的特点,其下面类不能用迭代器取元素,需要用到keySet和entrySet,通过该方法可以返回Set集合,在用操作返回的Set集合,便可以获取相应的键和值;对于Vector还有一个特别的方法(elements)来获取集合元素。

五、总结:

    综上是对java集合框架的一个总结,从总体上需要全面认识集合这个东西,对于集合的操作有很多,但是大多数就是那么几样,掌握其中的不变量很重要,既然集合是一个容器,用来盛放元素,那么对元素的增删改查和判断就是必要的,而且需要运用起来,相信在运用的过程中收获的会更多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 集合框架