一、Java内置的各种集合框架
Java集合框架基本内容,共分为俩大部分,Collection接口和Map接口。关系如下:
注意:
①在图一中,没有注明接口的,都是实现类;在图二中,接口与抽象类与实现类都已经标注
②这两个流程图片都没有完全的显示出Java自带的集合结构,综合了两者才是齐全的。比如图①中的Collection集合中缺少了一个Queue接口(队列)和Deque(双端队列),而这两者实现的类都是LinkedList(Queue还实现了一个优先队列的类),因此新建对象的时候,可以如下:
Queue <String> queue=new LinkedList<String>();
Queue <String> priorityqueuq=new PrioritQueue<String>();
Deque <String> deque=new LinkedList<String>();
③图一中,set接口缺少了Treeset的实现类,图二中的set缺少了LinkedHashset的实现类;Map也是,所以要综合这两个图。
二、对接口的解释
- Collection :用来存储管理一组对象 objects ,这些对象一般被成为元素 elements
- Set : 元素不能重复,背后隐含着查找/搜索的语义 ,不要求顺序(1,2,3与3,2,1是相同的set)
- SortedSet : 一组有序的不能重复的元素
- List : 线性结构,里面的元素是相对有序的并且可以重复,可以在中间插入删除
- Queue : 队列,元素之间相对有序,只能头插,头删,尾插,尾删
- Deque : 双端队列
- Map:key-value键值对,即key可以自己自定义,而collection的键值对不可,均为整型。其中,key不可以重复,value可以
- SortedMap:一组有序的Map
三、对各个集合操作学习的参考博客
①List接口的ArrayList,LinkedList实现类,Set接口的HashSet,TreeSet实现类,Map接口的HashMap,TreeMap实现类的底层理解和操作可看下面的连接:
https://blog.youkuaiyun.com/shuyv/article/details/112450199?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
②List接口的Vector底层理解和操作可以看:
③Queue接口的操作可以看:
操作说明:
<1>https://www.cnblogs.com/lemon-flm/p/7877898.html
<2>https://www.cnblogs.com/haimishasha/p/10808906.html
实例应用:
<1>https://www.runoob.com/java/data-queue.html
<2>https://www.jianshu.com/p/7a86c56c632b
④Queue接口的priorityQueue实现类可以看:
⑤Set接口的LinkedHashset的底层理解和操作实例可以看:
⑥Map接口的LinkedHashmap的底层理解和操作实例可以看:
底层理解:
<1> https://blog.youkuaiyun.com/justloveyou_/article/details/71713781?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242
<2> https://blog.youkuaiyun.com/xiaoyao2246/article/details/88836769?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=1328641.8473.16155254985370039&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
实例操作:
https://blog.youkuaiyun.com/dnc8371/article/details/106809671