首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java集合
订阅
星璇
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
ArrayList初始化 - Java那些事儿
ArrayList部分一共五篇文章了,并且引入了时间复杂度来分析,强烈建议大家一定要按顺序阅读,本文是第1篇。 前些天的文章,反复的画图,不停的重复,就是想让大家理解,对象在内存中是什么样的。也是为今天的及以后的讲解打下基础。如果要说大家在写Java代码的时候哪个类用得最多,我…
JAVA集合:TreeMap红黑树深度解析
红黑树是一种特殊的平衡二叉树,不追求严格的平衡,可以在O(log n)时间内做查找、插入和删除,插入节点最多只需要两次旋转即可达到平衡,效率很高。 任意节点到它所有的叶子节点的路径都含有相同的黑色节点的数量。 【引申规则:根据规则4和5,如果一个节点只有一个子节点,那么这个子节…
Java数据结构之线性表-Java那些事儿专栏
这篇文章我们来说说Java里一个很重要的数据结构——线性表,还是这张图,线性表对应着下图里的List。 顺序表中的数据元素存储是连续的,内存划分的区域也是连续的。存储结构如下图: 我们的ArrayList底层是数组实现的,底层元素在内存中是按顺序排列的,ArrayList是Ja…
JAVA集合:HashMap深度解析(版本对比)
今天先为JAVA集合系列源码开一个头,也尝试着用不同的方式,不同的角度去阅读源码,去学习源码中的一些思想。HashMap作为最常使用的集合之一;JDK1.7之前,有很大的争议,一方面是数据量变大之后的查询效率问题,还有就是线程安全问题。本文将从JDK1.7和1.8两个不同版本的…
ArrayList的时间复杂度 - Java那些事儿专栏
按照下标把元素添加到指定位置,想必大家都知道,我们直接上源码。 我看到有些书上写的是依次移动元素到下一格,这种说法不够严谨,所以我再强调一遍,是依次复制插入位置及后面的数组元素,到后面一格,不是移动,因此,复制完后,arr[2],arr[3]指向对一个对象。 我们debug验证…
时间复杂度 - Java那些事儿专栏
最近看了一下评论区里,大家都急着想要了解HashMap,先不要着急,要完整的了解HashMap的内部实现,我们还需要一些基础知识,有了这些基础知识,我们才能更好的理解HashMap,其实我们已经在不知不觉进入了数据结构的大门,为了以后让大家能更好的理解后续文章,本文我们先引入时…
Arraylist与Vector的区别 - Java那些事儿专栏
前几篇文章我们重点说了ArrayLIst,是时候放出这张图了。 这张图里的内容对我们学习Java来说,非常的重要,白色的部分是需要去了解的,黄色部分是我们要去重点了解的,不但要知道怎么去用,至少还需要读一次源码。绿色部分内容已经很少用了,但在面试题中有可能会问到,我们来看一个经…
和我一起读Java8 LinkedList源码
书接上一篇ArrayList源码解析,这一节继续分析LinkedList在Java8中的实现,它同样实现了List接口,不过由名字就可以知道,内部实现是基于链表的,而且是双向链表,所以Linked List在执行像插入或者删除这样的操作,效率是极高的,相对地,在随机访问方面就弱…
干货:HashMap的工作原理解析
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行…
三顾ArrayList
第三次强调,ArrayLIst是一个普通的类。 我们只能循环数组,找到“周八“的下标5,由于数组没有提供删除方法,我们只能把下标为5的位置赋值为null(造成了数组空洞),“周八”这个Person对象已经没有引用指向它了,JVM的垃圾回收机制会在适当的时候回收它。但数组的长度还…