首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
LanMiao
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
22
文章 21
沸点 1
赞
22
返回
|
搜索文章
最新
热门
从零开始的Java容器学习(九):Set系列
前面学了List,Map,现在来学Set。在存储元素时,List允许重复,如果不允许重复时就要使用Set了,在jdk中提供的Set实现是利用Map中Key不可重复,将Set的value作为Map的Key来存储实现的。那么既然底层是Map,key有了那value存什么呢?且看下文…
从零开始的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容器学习(五):HashMap
HashMap在面试中经常会问到,包括它的底层实现,与其他容器的比较以及1.8前后实现的比较。 在JDK1.8中,HashMap的实现方式是数组+链表/红黑树,存储的是无序键值对映射,非线程安全。 HashMap采用数组来存储key、value构成的Entry对象,无容量限制,…
从零开始的Java容器学习(四):Vector和Stack
今天我们来学学Vector和Stack这两个“过时”的容器,虽然实际开发过程中用到的可能性不高,但为了List容器的完整性,学一学了解一下还是有必要的。学之前需要回忆一下栈Stack这一数据结构。 Vector是基于synchronized实现的线程安全的ArrayList,但…
从零开始的Java容器学习(三):LinkedList
基于双向链表机制,在插入元素时,须创建一个新的Node对象,并切换相应元素的前后元素的引用;在查找元素时须遍历链表;在删除链表时,找到要删除的元素然后在链表上删除即可。 此图由IDEA生成,由图可得出其继承关系分别是继承自AbstractSequentialList,实现了Cl…
从零开始的Java容器学习(二):ArrayList
上一篇文章主要介绍了下容器类,这篇文章将深入浅出地学习ArrayList。 ArrayList基于数组实现,无容量限制,在执行插入元素时可能要扩容,在删除元素时并不会减小容量,在查找元素时要遍历数组,对于非null的元素采取equals的方式寻找,非线程安全。优缺点:查找快,插…
从零开始的Java容器学习(一):初窥容器
写这系列文章是为了一边学习一边总结,初次写文,如有错谬欢迎各位批评指正。 容器,指用来存放对象的工具。容器主要包括两种,分别是Collection和Map,Collection用于存放对象,它的实现主要有List和Set,而Map用来存储键值对的映射表。 当然还有其他的一些方法…
个人成就
文章被点赞
31
文章被阅读
8,107
掘力值
426
关注了
3
关注者
5
收藏集
3
关注标签
3
加入于
2020-05-07