数据结构
荼白z
这个作者很懒,什么都没留下…
展开
-
[面试源码] jdk8 之 LinkedList解析
概述 LinkedList 是线程不安全的,允许元素为null的双向链表。 其底层数据结构是链表,它实现List, Deque, Cloneable, java.io.Serializable接口,因为实现了Deque接口,所以也可以作为一个双端队列。和ArrayList相比较因为没有实现RandomAccess所以它以下标随机访问数据比较慢。 因为底层是链表实现的,所以在增加和删除时只修改指针就可以了,所以时间效率高,也不需要扩容,所以空间效率比arraylist(数组实现)高。 缺点就是当随机访问元素时原创 2020-07-19 21:32:35 · 255 阅读 · 0 评论 -
[面试源码] java8 ArrayList解析
首先看ArrayList实现了 List ,RandomAccess , Cloneable , java.io.Serializable 其中的RandomAccess 代表其拥有随机快速访问的能力 因为其底层数据结构是数组,是占据一块连续的内存空间,所以其空间效率不高,但是可以根据下标读写(改查)元素,时间效率很高,当集合中的元素超出容量会进行扩容操作,新容量=旧容量*1.5 arraylist需要8字节来存储自己的信息,所以最大的容量就是 Integer.MAX_VALUE-8 下面来看代码,首先是构原创 2020-07-12 20:58:36 · 346 阅读 · 0 评论 -
[数据结构]java 队列实现广度优先搜索栈实现深度优先搜索
java代码 用队列实现广度优先搜索 BFS,用栈实现深度优先搜索 DFS原创 2020-07-05 09:41:30 · 586 阅读 · 0 评论