雁过留声 发表于 2023-12-10 20:03:11

【Java基础】Java容器相关知识小结

目录

[*]0. 前言
[*]1. Collection接口

[*]1.1. List接口

[*]1.1.1. ArrayList
[*]1.1.2. LinkedList
[*]1.1.3. Vector
[*]1.1.4. Stack

[*]1.2. Set接口

[*]1.2.1. HashSet
[*]1.2.2. LinkedHashSet
[*]1.2.3. TreeSet

[*]1.3. Queue接口

[*]1.3.1. PriorityQueue
[*]1.3.2. LinkedList


[*]2. Map接口

[*]2.1. HashMap
[*]2.2. TreeMap
[*]2.3. LinkedHashMap

[*]3.常见用法——增/删/改/查/排序/容量
[*]后记
[*]参考文章

0. 前言

容器,顾名思义,就是java中存储数据的常用结构,在C++中我们接触过数组、链表等等,在java中,容器则进一步规范化,形成了如下的容器接口继承关系图:
https://cdn.jsdelivr.net/gh/cyl173/Imagebed/1-%E5%AE%B9%E5%99%A8.png
java容器主要包括collection接口(集合)和map接口(图)
1. Collection接口

1.1. List接口

1.1.1. ArrayList

数组实现,查询快,增删慢,线程不安全,效率高;
1.1.2. LinkedList

链表实现,查询慢,增删快,线程不安全,效率高;
1.1.3. Vector

数组实现,查询快,增删慢,同步访问
1.1.4. Stack

vector子类,先进后出,vector不常用,stack却很常用。
1.2. Set接口

1.2.1. HashSet

基于HashMap实现,线程不安全,效率高;
存储元素无序,不可重复;
1.2.2. LinkedHashSet

基于LinkedHashMap实现,线程不安全,效率高;
存储元素有序,不可重复;
1.2.3. TreeSet

基于TreeMap实现,线程不安全,效率高;
存储元素有序,不可重复;
1.3. Queue接口

1.3.1. PriorityQueue

通过二叉小顶堆实现,可以用一棵完全二叉树表示。
1.3.2. LinkedList

链表实现,查询慢,增删快,线程不安全,效率高;
2. Map接口

2.1. HashMap

数组+链表+红黑树实现,线程不安全,效率高;
重点是扩容和红黑树转换
2.2. TreeMap

和HashMap无序排序不同,SortedMap接口在内部会对Key进行排序,注意到SortedMap是接口,它的实现类是TreeMap。
2.3. LinkedHashMap

底层数据结构类似hashmap,但是内部还有一个双向链表维护键值对的顺序,每个键值对既位于哈希表中,也位于双向链表中。LinkedHashMap支持两种顺序插入顺序、访问顺序。
3.常见用法——增/删/改/查/排序/容量

以上是简单的容器特性介绍,下面是一些常用的容器类的使用方法,废话不多说,上图:
https://cdn.jsdelivr.net/gh/cyl173/Imagebed/2-%E6%AF%94%E8%BE%83.png
后记

如果觉得我写得还算不错,不妨点赞关注一波走起~
想看更多博文,请访问我的各平台主页:博客园/CSDN/51CTO/掘金论坛/知乎
参考文章


[*]Java常用容器基础操作汇总
[*]菜鸟教程相关文章

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【Java基础】Java容器相关知识小结