自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 LinkedList详解

Linked + List = 链表 + 列表 = LinkedList = 链表列表与ArrayList不同,LinkedList初始化不需要创建数组,因为它是一个链表结构。而且也没有传给构造函数初始化多少个空间的入参,例如这样是不可以的,如下;但是,构造函数一样提供了和ArrayList一些相同的方式,来初始化入参,如下这四种方式; LinkedList的插入方法比较多,List中接口中默认提供的是add,也可以指定位置插入。但在LinkedList中还提供了头插addFirst和尾插addLas

2022-06-17 21:50:36 902 1

原创 ArrayList详解

Array + List = 数组 + 列表 = ArrayList = 数组列表 方式二:内部类方式 (这种方式也比较常用,而且省去了多余的代码量) 方式三:Arrays.asList 构造函数源码分析 通过构造函数可以看到,只要实现 Collection 类的都可以作为入参。 在通过转为数组以及拷贝Arrays.copyOf 到 Object[] 集合中在赋值给属性elementData 。注意:c.toArray might (incorrectly) not return

2022-06-17 17:28:06 567

原创 红黑树学习

2-3数是红黑树的前身,首先 2-3 树(读法:二三树)就是一个节点有 1 个或者 2 个元素,而实际上 2-3 树转红黑树是由概念模型 2-3-4 树转换而来的。-4 叉就是一个节点里有 3 个元素, 这在 2-3 树中会被调整,但是在概念模型中是会被保留的。 虽然 2-3-4 树也是具备 2-3 树同样的平衡树的特性,但是如果直接把这样的模型用代码实现就会很麻烦,且效率不高,这里的复杂点包括;1. 2-叉、3-叉、4-叉,三种结构的节点类型,互相转换复杂度较高2. 3-叉、4-叉,节点在数据比较上需要进

2022-06-15 23:35:00 143

原创 2-3树学习

使用树结构就是为了有效降低时间复杂度,提升整体效率:插入、删除、查找(索引),尤其是索引操作。一个平衡树的索引时间复杂度是O(logn),而数组的索引时间复杂度是O(n)。在树的数据结构中,最先有点是二叉查找树,也就是英文缩写BST树。在使用数据插入的过程中,理想情况下它是一个平衡的二叉树,但实际上可能会出现二叉树都一边倒,让二叉树像列表一样的数据结构。从而树形结构的时间复杂度也从O(logn)升级到O(n),如下图;二叉搜索树的数据插入过程是,插入节点与当前树节点做对比,小于在左,大于在右综上呢,如果我们

2022-06-14 21:39:06 109

原创 HashMap源码分析

在HashMap存放元素时候有这样一段代码来处理哈希值,这是java 8的散列值扰动函数,用于优化散列效果; 理论上来说字符串的hashCode是一个int类型值,那可以直接作为数组下标了,且不会出现碰撞。但是这个hashCode的取值范围是[-2147483648, 2147483647],有将近40亿的长度,谁也不能把数组初始化的这么大,内存也是放不下的。默认初始化的Map大小是16个长度 DEFAULT_INITIAL_CAPACITY = 1 ...

2022-06-13 22:56:38 369 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除