集合知识(一):集合的整体认识
1.集合的简单介绍
集合:简而言之就是一种存储数据的容器,包括集合的接口,实现类,以及算法。
接口:规定了整个集合的顶层框架,常用的API的规范,相当于给整个集合制定了标准,实现了接口的,都可以看作集合,这也是Java多态思想的体现。
实现类:就是对接口中的方法的具体的实现,相当于根据接口制定的标准的具体实现。
算法:算法存在于实现类中,是对接口中规定的ApI的实现过程,这里是集合的精髓,也是集合强大的原因,这些算法方便了我们的程序开发。
2.集合的体系原则
简而言之,集合的体系原则就是:参阅顶层的接口,实现底层的对象
3.使用集合的好处
- 集合的容量可以根据算法自增长,不用过于担心容量的不确定性
- 集合中包含了很多高性能的算法,使我们的代码质量和效率提升
- 集合可以在不用的API中相互调用,就是好似一个装有数据的快递。
- 集合是在jdk中的,不用整合。
4.集合的继承体系
集合可以分为单列和双列,单列就如数组和链表类似,单个数据成窜,而双列主要就是key-value结构,类似hash表。
单列集合继承体系:
从图可以看出,单列集合最顶层是Iterable接口,这是迭代器的接口,是一种为了遍历集合的的api的暴露。
然后就是Colletion接口,这是单列集合的最顶层接口了,其次就是三个接口,Queue(队列),LIst, Set,单列对象也就分这三种。
最重要的是List,Set两种。
双列集合的继承体系
双列集合的最顶层接口是Map,其中最重要的是HashMap,Hashtable,LinkedHashMap,ConcurrentHashMap.
5如何选用集合
- 如果需要用到key-value的,就选用map下的双列集合,需要排序选TreeMap,不需要排序选HashMap,多线程环境用ConcurrentHashMap
就选用map下的双列集合,需要排序选TreeMap,不需要排序选HashMap,多线程环境用ConcurrentHashMap - 只需要单纯存放元素时,选用Colletion下的单列集合,保证集合中的数据唯一用Set下的集合,不需要就用List下的集合,最后根据情况选用。