![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java容器
文章平均质量分 86
ProfeSir
努力学习Java编程中...大家多多指教。
展开
-
LinkedList源码解析 给jdk写注释系列之jdk1.6容器(2)
原文出处: 吞噬天帝 本系列: 给jdk写注释系列之jdk1.6容器(1)-ArrayList源码解析 LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明。 1.链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面转载 2016-08-05 13:46:11 · 514 阅读 · 0 评论 -
ArrayList源码解析 给jdk写注释系列之jdk1.6容器(1)
原文出处: 吞噬天帝 工作中经常听到别人讲“容器”,各种各样的容器,话说到底什么是容器,通俗的讲“容器就是用来装东西的器皿,比如:水桶就是用来盛水的,水桶就是一个容器。” ok,在我们写程序的时候常常要对大量的对象进行管理,比如查询,遍历,修改等。jdk为我们提供的容器位于java.util包,也是我们平时用的最多的包之一。 但是为什么不用数组(其实也不是不用,只是不直接用)呢,因为转载 2016-08-05 12:28:54 · 447 阅读 · 0 评论 -
HashMap源码解析 给jdk写注释系列之jdk1.6容器(4)
前面了解了jdk容器中的两种List,回忆一下怎么从list中取值(也就是做查询),是通过index索引位置对不对,由于存入list的元素时安装插入顺序存储的,所以index索引也就是插入的次序。 Map呢是这样一种容器,它可以存储两个元素键和值,根据键这个关键字可以明确且唯一的查出一个值,这个过程很像查字典,考虑一下使用什么样的数据结构才能实现这种效果呢? 1.自己实现一个Map转载 2016-08-05 14:26:29 · 355 阅读 · 0 评论 -
LinkedHashMap源码解析 给jdk写注释系列之jdk1.6容器(5)
前面分析了HashMap的实现,我们知道其底层数据存储是一个hash表(数组+单向链表)。接下来我们看一下另一个LinkedHashMap,它是HashMap的一个子类,他在HashMap的基础上维持了一个双向链表(hash表+双向链表),在遍历的时候可以使用插入顺序(先进先出,类似于FIFO),或者是最近最少使用(LRU)的顺序。 来具体看下LinkedHashMap的实现。转载 2016-08-05 21:12:43 · 351 阅读 · 0 评论 -
HashSet源码解析&Map迭代器 给jdk写注释系列之jdk1.6容器(6)
今天的主角是HashSet,Set是什么东东,当然也是一种java容器了。 那么今天的HashSet它又是怎么一回事的,他的存在又是为了解决什么问题呢? 先来看下Set的特点:Set元素无顺序,且元素不可以重复。 。想到了什么?无顺序,由于散列的缘故;不可重复,HashMap的key就是不能重复的。是的,你有想对了。HashSet就是基于HashMap的key来实现的,整个H转载 2016-08-05 21:17:03 · 362 阅读 · 0 评论 -
TreeMap源码解析 给jdk写注释系列之jdk1.6容器(7)
TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解。 要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链表,Hash表等树这种结构又有什么优点。 1.二叉查询树、红黑树介绍 以下为个人理解,有误请拍砖。。。 下面我尽可能用通俗易懂的语言,简单总结一下数组,链转载 2016-08-05 21:24:32 · 440 阅读 · 0 评论 -
TreeSet&NavigableMap&NavigableSet源码解析 给jdk写注释系列之jdk1.6容器(8)
TreeSet是一个有序的Set集合。 既然是有序,那么它是靠什么来维持顺序的呢,回忆一下TreeMap中是怎么比较两个key大小的,是通过一个比较器Comparator对不对,不过遗憾的是,今天仍然不会讲Comparator,但是需要明白的是TreeSet要实现信息也必须依靠于Comparator接口。 关于Set,在前面我们讲过一个HashSet,是不是想起了什么,Set和M转载 2016-08-05 21:28:27 · 377 阅读 · 0 评论 -
PriorityQueue源码解析 给jdk写注释系列之jdk1.6容器(12)
PriorityQueue是一种什么样的容器呢?看过前面的几个jdk容器分析的话,看到Queue这个单词你一定会,哦~这是一种队列。是的,PriorityQueue是一种队列,但是它又是一种什么样的队列呢?它具有着什么样的特点呢?它的底层实现方式又是怎么样的呢?我们一起来看一下。 PriorityQueue其实是一个优先队列,什么是优先队列呢?这和我们前面讲的先进先出(First In转载 2016-08-05 21:51:33 · 446 阅读 · 0 评论 -
HashMap底层实现详解
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基转载 2016-09-16 09:28:12 · 5670 阅读 · 1 评论