Java集合源码解析
文章平均质量分 90
自己读了许多份别人的源码剖析,再加上自己遇到一些面试问题,综合而成。
coderlong
钱能解决的事情,,,我都解决不了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PriorityQueue And Queue
title: PriorityQueue and Queue源码剖析 date: 2018-3-3 23:18:40 categories: - JDK tags: - JDK - 源码学习此博文过长,纯属自己记录的笔记,慎入。ArrayDeque是一个双向队列,队列的两个口都可以入队和出队操作。再进一步说,其实ArrayDeque可以说...原创 2018-04-11 15:00:46 · 235 阅读 · 0 评论 -
HashMap的一些面试题
LZ在这里总结了一些关于HashMap的面试题HashMap 中的 key 如果是 Object 则需要实现哪些方法?hashCode 方法和 equals 方法。 因为 hashCode 方法用来计算 Entry 在数组中的 index 索引位置,equals 方法用来比较数组指定 index 索引位置上链表的节点 Entry 元素是否相等。否则由于 hashCode 方法实现不恰当会导致严重的原创 2018-01-04 21:58:05 · 791 阅读 · 0 评论 -
Collections
title: Collections工具类使用 date: 2017-12-27 12:49:59 categories: - java tags: - java - java集合 - JDK摘要:没有摘要 正文:排序操作void reverse(List list):反转 void shuffle(List lis原创 2018-01-29 23:40:05 · 248 阅读 · 0 评论 -
HashMap源码剖析
title: HashMap源码剖析 date: 2018-2-5 14:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习HashMap源码剖析前面了解了jdk容器中的两种List,回忆一下怎么从list中取值(也就是做查询),是通过index索引位置对不对,由于存入list的元素时...原创 2018-03-12 20:41:36 · 134 阅读 · 0 评论 -
Vector源码剖析
title: Vector源码剖析 date: 2018-3-1 23:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习package java.util; public class Vector<E> extends AbstractList<E&g...原创 2018-03-12 20:41:54 · 131 阅读 · 0 评论 -
LinkedHashMap源码剖析
title: LinkedHashMap源码剖析 date: 2018-3-8 23:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习前面分析了HashMap的实现,我们知道其底层数据存储是一个hash表(数组+单向链表)。接下来我们看一下另一个LinkedHashMap,它是HashMap...原创 2018-03-12 20:42:11 · 132 阅读 · 0 评论 -
Iterator设计模式&Collection源码剖析
title: Iterator&Collection源码剖析 date: 2018-1-18 14:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习 - 设计模式统一接口, ArrayList的定义public class ArrayList<E>...原创 2018-03-12 20:42:39 · 240 阅读 · 0 评论 -
ArrayList源码解析
title: ArrayList源码剖析 date: 2018-1-16 14:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习ArrayList源码解析我们经常会听到别人讲”容器”各种各样的容器,话说到底什么是容器,通俗的讲“容器就是用来装东西的器皿,比如:水桶就是用来盛水的,水桶...原创 2018-03-12 20:43:07 · 111 阅读 · 0 评论 -
LinkedList源码剖析
title: LinkedList源码剖析 date: 2018-1-17 14:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习LinkedList源码剖析 (有点长,因为我整理了很多我的笔记和网络上面的博客)LinkedList是基于链表结构的一种List,在分析LinkedLi...原创 2018-03-12 20:43:37 · 164 阅读 · 0 评论 -
Collections
title: Collections工具类使用 date: 2017-12-27 12:49:59 categories: - java tags: - java - java集合 - JDK摘要:没有摘要 正文:排序操作void reverse(List list):反转 void shuffle(List l...原创 2018-03-12 20:44:11 · 211 阅读 · 0 评论 -
红黑树详解
title: 红黑树,B树, B+树,B*树 date: 2018-3-1 21:02:17 categories: - java tags: - java - java集合 - JDK - 数据结构B树B树是一种多路搜索树 一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是...原创 2018-03-12 20:44:27 · 229 阅读 · 0 评论 -
String源码剖析
title: String源码剖析 date: 2018-2-1 14:18:40 categories: - JDK tags: - JDK - 代码重构 - 源码学习String源码分析public void stringTest(){ String a = "a"+"b"+1; String b = "...原创 2018-03-12 20:44:56 · 175 阅读 · 0 评论 -
Comparable && Comparator
Comparable 和 Comparator 的区别和场景?Comparable 对实现它的每个类的对象进行整体排序,这个接口需要类本身去实现,若一个类实现了 Comparable 接口,实现 Comparable 接口的类的对象的 List 列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序,此外实现 Comparable 接口的类的对象可以用作有序映原创 2018-01-10 12:32:25 · 268 阅读 · 0 评论 -
ArrayList源码解析
ArrayList源码解析代码转载自[博客园]http://www.cnblogs.com/tstd/p/5042087.html 我们经常会听到别人讲”容器”各种各样的容器,话说到底什么是容器,通俗的讲“容器就是用来装东西的器皿,比如:水桶就是用来盛水的,水桶就是一个容器。” ok,在我们写程序的时候常常要对大量的对象进行管理,比如查询,遍历,修改等。jdk为我们提供的容器位于java.原创 2018-01-16 14:23:31 · 166 阅读 · 0 评论 -
ArrayList
ArrayList的介绍ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能在单线程环境下,多线程环境下可以考虑用collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArray转载 2017-12-24 22:34:23 · 193 阅读 · 0 评论 -
再探HashMap
HashMap的底层原理当我们往 HashMap 中 put 元素时,先根据 key 的 hash 值得到这个 Entry 元素在数组中的位置(即下标),然后把这个 Entry 元素放到对应的位置中,如果这个 Entry 元素所在的位子上已经存放有其他元素就在同一个位子上的 Entry 元素以链表的形式存放,新加入的放在链头,从 HashMap 中 get Entry 元素时先计算 key 的 h原创 2018-01-07 12:01:09 · 223 阅读 · 0 评论