首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
从零开始的Java容器学习
订阅
LanMiao
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
从零开始的Java容器学习(十):阶段总结
前面我们学习了List、Map和Set的一些容器,因为许多奇奇怪怪的事情导致这个阶段性的总结距离上一篇文章的发布隔了很长时间才完成。 首先来看,我们学习了List类的容器:ArrayList、LinkedList、Vector和Stack,Map类的:HashMap、Hasht…
从零开始的Java容器学习(九):Set系列
前面学了List,Map,现在来学Set。在存储元素时,List允许重复,如果不允许重复时就要使用Set了,在jdk中提供的Set实现是利用Map中Key不可重复,将Set的value作为Map的Key来存储实现的。那么既然底层是Map,key有了那value存什么呢?且看下文…
从零开始的Java容器学习(五):HashMap
HashMap在面试中经常会问到,包括它的底层实现,与其他容器的比较以及1.8前后实现的比较。 在JDK1.8中,HashMap的实现方式是数组+链表/红黑树,存储的是无序键值对映射,非线程安全。 HashMap采用数组来存储key、value构成的Entry对象,无容量限制,…
从零开始的Java容器学习(三):LinkedList
基于双向链表机制,在插入元素时,须创建一个新的Node对象,并切换相应元素的前后元素的引用;在查找元素时须遍历链表;在删除链表时,找到要删除的元素然后在链表上删除即可。 此图由IDEA生成,由图可得出其继承关系分别是继承自AbstractSequentialList,实现了Cl…
从零开始的Java容器学习(一):初窥容器
写这系列文章是为了一边学习一边总结,初次写文,如有错谬欢迎各位批评指正。 容器,指用来存放对象的工具。容器主要包括两种,分别是Collection和Map,Collection用于存放对象,它的实现主要有List和Set,而Map用来存储键值对的映射表。 当然还有其他的一些方法…
从零开始的Java容器学习(八):TreeMap
设想一个场景,我们需要对每一个键值对映射的Key进行排序,在遍历时需要按照顺序获得键值对,这个时候就需要用到TreeMap了。 TreeMap是支持排序的Map实现,它的底层是红黑树,非线程安全。TreeMap的key不能为null,如果没有实现比较器则将根据自然排序对Key进…
从零开始的Java容器学习(七):LinkedHashMap
前面我们学了HashMap,考虑这么一种情况,在遍历Map的时候,我们希望遍历的顺序是插入的顺序,这时就要用到LinkedHashMap了。 LinkedHashMap继承自HashMap,其内部维护一个环形双向链表,底层是数组+链表/红黑树,其迭代顺序有插入顺序和访问顺序,默…
从零开始的Java容器学习(六):Hashtable
上一节学了HashMap,这次来了解一下这个过时的容器:Hashtable。Hashtable跟HashMap一样也是基于哈希表实现的,表内元素都是Key-Value键值对映射,K、V都不允许null值,发生Hash冲突时通过单链表解决冲突,在容量不足时会扩容并重新hash,扩…
从零开始的Java容器学习(四):Vector和Stack
今天我们来学学Vector和Stack这两个“过时”的容器,虽然实际开发过程中用到的可能性不高,但为了List容器的完整性,学一学了解一下还是有必要的。学之前需要回忆一下栈Stack这一数据结构。 Vector是基于synchronized实现的线程安全的ArrayList,但…
从零开始的Java容器学习(二):ArrayList
上一篇文章主要介绍了下容器类,这篇文章将深入浅出地学习ArrayList。 ArrayList基于数组实现,无容量限制,在执行插入元素时可能要扩容,在删除元素时并不会减小容量,在查找元素时要遍历数组,对于非null的元素采取equals的方式寻找,非线程安全。优缺点:查找快,插…