Java集合(一)总体框架
来源:互联网 发布:php 获取图片拍摄地点 编辑:程序博客网 时间:2024/06/18 02:24
注:原博客 http://www.cnblogs.com/skywang12345/p/3323085.html,我仅是梳理做学习笔记
java集合是java提供的工具包,包含了:集合,链表,队列,栈,数组,映射等,集合工具类的包位置:java.util.*
java集合主要分4个部分:List列表,Set集合,Map映射,工具类(Iterator迭代器,Enumeration枚举类,Arrays和Collections),整体各种类的框架图如下:
大致说明:主干,Collection和Map
1.Collection简介
Collection是一个高度抽象出来的集合,它包含了集合的基本操作:添加,删除,清空,遍历,是否为空,获取大小,是否保护某元素 为了方便,抽象出了AbstractCollection抽象类,它实现了Collection中的绝大多数函数,这样我们可以通过继承AbstractCollection省去重复编码。
另外Collection中有一个iterator()函数,它的作用是返回一个Iterator接口,我们通过Iterator迭代器遍历集合。
(1)List简介
List是一个接口,是一个有序的队列,可以有重复的元素,每个元素都有一个索引。它包含了Collection中的全部函数接口,也有自己额外的API接口,主要有:添加,删除,获取,修改指定位置的元素,获取List中的子队列
LinkedList:是一个双向链表,它可以被当做堆栈,队列或者双端队列进行操作,随机访问效率低,但是随机插入,删除效率高,非同步的 ArrayList:是一个数组队列,相当于动态数组,能够动态增长,随机访问效率高,随机插入,删除效率低,线程不安全Vector:是一个矢量队列,和ArrayList一样,是一个动态数组,线程安全Stack:是一个栈,它继承于Vector,它的特性是先进后出,因为Vector是通过数组实现的,那么Stack也是数组实现
(2)Set简介
Set是一个不允许有重复值的集合,Set的实现类都是基于Map去实现的(HashSet是通过HashMap实现,TreeSet通过TreeMap实现)
HashSet:通过HashMap实现,元素无序的,不允许使用null,没有重复的元素集合。同时它是非同步的,如果多个线程同时访问一个set,而其中一个线程修改了set,那么它必须保持外部同步TreeSet:通过TreeMap实现,元素是有序的,它的排序方式取决于构造方法,是非同步的。
2.Map简介
Map是一个映射接口,key-value键值对,Map中的每一个元素都包含一个Key和key对应的value。Map映射中不能包含重复的键,每个键最多只能映射到一个值。Map提供接口分别用于返回键集(keySet()返回键级的Set集合),值集(values()返回值集的Collection集合),或键-值映射关系集(entrySet()用于返回键-值的Set集合)
TreeMap:是一个有序的key-value集合,它是通过红黑树实现的。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。继承于AbstractMap所以是一个Map,即key-value集合。实现NavigableMap接口,支持一系列的导航方法比如返回有序的key集合。 HashMap:是一个散列表,它是通过拉链法实现的。继承于AbstractMap所以是一个Map,但是没有实现NavigableMap接口,所以是一个无序的键值对,它的键值对可以为null,线程不安全 WeakHashMap:是一个散列表,也是通过拉链法实现的。存储键值对,键值可以为Null。相比于HashMap,它的键是“弱键”,当"弱键"被GC回收时,它对应的键值也会被WeakHashMap中删除,线程不安全 HashTable:是一个散列表,也是通过拉链法实现的。它存储的是无序的键值对的映射,继承于Dictionary,实现了Serializable接口,函数是同步的,所以是线程安全的,key和value不可以为null
3.对比图
(1)
(2)List中不存在真正的有序无序,都是什么顺序存的就什么顺序读取出来,但是stack是栈,先进后出
- Java集合(一)总体框架
- Java 集合总体框架
- Java集合总体框架
- Java集合源码解读(一):集合总体框架
- Java集合系列(1)--总体框架
- Java集合的总体框架
- Java集合系列-总体框架
- Java集合之总体框架
- 【Java集合系列】---总体框架
- 【Java集合系列】---总体框架
- java集合框架总体梳理
- 【Java集合系列】---总体框架
- 【Java集合系列】---总体框架
- java并发编程(十九)----(JUC集合)总体框架介绍
- Java 集合系列01之 总体框架
- Java 集合系列01之 总体框架
- Java 集合系列01之 总体框架
- Java集合系列01之总体框架
- 创建守护进程
- c++ 实现一个简单的k-v数据黑板
- 判别分析|R语言
- 剑指offer-05-顺时针打印数组
- js将多个方法添加到window对象上的多种方法
- Java集合(一)总体框架
- 从0到1搭建一个项目管理平台<禅道>
- azkaban的executor的分布式(集群)部署
- HTML5的 input:file上传类型控制
- 时间戳转成日期,解决总是日期总是1970年的问题
- 【剑指offer】题12:打印1到最大的n位数
- Wildfly 配置web项目 并开启https双向认证
- Web Service工作原理及实例
- javasript自己封装的数组方法