JAVA容器
在学习JAVA的容器集合的底层,和实际应用的知识整理
搞前端的小菜
热爱前端的小菜,低代码方向的爱好者
展开
-
JAVA中的HashMap(使用篇)
刚才说了HashMap的底层原理,详见https://blog.csdn.net/weixin_46726346/article/details/107428192那只知道原理不会用也是不行的,所以这一篇主要讲HashMap主要的方法;一,构造方法HashMap()// 构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。HashMap(int initialCapacity) //构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。Ha原创 2020-07-18 18:53:24 · 598 阅读 · 0 评论 -
JAVA中的HashMap(原理篇)
这一篇呢,是相对于自己的理解,说一说HashMap的底层原理,希望能以简单的方式来说明,便于去理解。。。。一、HashMap特点首先说到表,那一定伴随着数据的增删改查和遍历;那HashMap同样也有着这样的功能;那到底什么是HashMap,我们先说一下他的两个特点;1.存取无序2.键唯一那,HashMap中有两个参数,一个是key,一个是value;这个key是唯一的,也就对应了HashMap的查找方式;二、HashMap的创建我们从创建一个HashMap对象开始说起,当我们创建一个Ha原创 2020-07-18 15:37:37 · 5501 阅读 · 5 评论 -
JAVA中的LinkedList(使用方法)
我在之前有写过一篇关于ArrayList的文章https://editor.csdn.net/md/?articleId=107562529那我们知道了,在ArrayList的底层是用动态数组来实现的,那数组的缺点ArrayList也一定会有,那数组的缺点是什么呢,增删慢,并且每次扩容都会有浪费的空间剩余。那有没有另一种数据结构,我增删很快,而且我用多少空间,我就开辟出多少空间,LinkedList就这样出来了,LinkedList的底层是用双向链表来实现的,至于双向链表的实现过程,在上一篇文章我也写原创 2020-08-01 21:59:54 · 979 阅读 · 0 评论 -
JAVA实现双向链表超详解(图解)
这一篇,说一下双链表的实现,双向链表一定是在单链表的基础上,进行优化,才能成为双链表,关于单链表的文章,可以看下面这个链接:https://blog.csdn.net/weixin_46726346/article/details/107687955所以一些重复的东西就不会再说了,言归正传,我们开始说双向链表;之前说过单链表的结构,我们再来看一下:单链表的查询方式,只能通过顺序遍历一遍才能查询,这也是单链表的一个缺陷,那有没有什么解决办法,或者是优化办法,这个时候双向链表出现了!我们来看一下双向原创 2020-07-31 14:51:33 · 1663 阅读 · 2 评论 -
JAVA实现单链表超详解(图解)
这一篇,说一下java的单链表的实现,如果有C语言的基础的话,应该知道,在C语言中,链表的实现是用指针来实现的,也就是用指针来指向下一个节点的地址来实现链表。那在java中没有指针的这个概念,我们应该怎么实现,怎么来表示地址,怎么指向一个地址;我们来看一个例子:Student stu=new Student();那,我们知道这行代码是一个对象的实例化,那这行代码到底是什么意思呢?我们这样理解:stu这个变量存储在栈内存中,右边的new Student()存储在堆内存中,就像这样:也就是可以原创 2020-07-30 14:27:59 · 4148 阅读 · 8 评论 -
JAVA实现自定义实现的ArrayList
那,为了更加深刻理解ArrayList的底层原理实现,就写一个自定义的ArrayList集合,实现出底层的基本功能,关于一些底层的原理,可以参考文章:https://blog.csdn.net/weixin_46726346/article/details/107562529好,言归正传,现在开始写:1、arraycopy的用法最开始想介绍一个方法arraycopy这个方法的使用,因为这个方法会被用到;我们用代码加图解来介绍: int arr[]=new int[5]; for(int i原创 2020-07-25 17:27:33 · 515 阅读 · 0 评论 -
JAVA中的ArrayList(原理篇+使用篇)
这一篇呢,介绍了ArrayList的一些底层原理和用法。本来想把原理和使用分开来写,但似乎内容不是那么多,就放在一起写了吧;关于ArrayList的特点,他的底层实现是基于动态数组的数据结构,完全就可以当做一个可以进行增删改查的数组;最开始呢,就说一下ArrayList实现的接口,ArrayList实现了三个标记性接口:1、Serializable:序列化接口Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。举个例子,如果我们有一个学原创 2020-07-24 17:29:31 · 377 阅读 · 0 评论