数据结构
文章平均质量分 85
CrazyJack123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用数组和链表实现栈和队列
程序取自《算法第四版》官方网站,程序中的jar包看这里,也可以使用标准输入输出流测试。栈的实现:作为一种数据结构,我们要实现的接口有isEmpty()、size()、push()、pop()、peek()以及迭代。下面分别来看用数组和链表实现的栈。数组实现栈:构造器中我们创建固定大小的数组,维护一个整数n用于表示栈内元素的个数。私有方法resize()用于改变数组(栈)的大小。使用内部类继承Ite原创 2016-11-18 12:14:50 · 1347 阅读 · 0 评论 -
LinkedHashMap、LinkedHashSet源码学习笔记
一、LinkedHashMap概述理解LinkedHashMap的关键点在于清楚HashMap的迭代并没有顺序,LinkedHashMap利用了一个额外的双向链表来维护一个特定的迭代顺序,而存储键值和HashMap一样用的散列表作为数据结构。HashMap的遍历得到的key并不是有特定顺序的。稍微回顾一下keySet方法如何获得key的集合: public Set<K> keySet() {原创 2016-12-14 17:24:47 · 587 阅读 · 0 评论 -
ArrayList、LinkedList学习笔记
ArrayList和LinkedList学习笔记一、ArrayList概述ArrayList实现List接口,底层用数组保存元素。元素数量趋向容量时,数组容量会动态增长,此时会带来数据的拷贝,允许包括null元素。线程不安全,如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式原创 2016-12-09 22:36:27 · 534 阅读 · 0 评论 -
HashMap、HashSet、Hashtable源码学习笔记
一、HashMap概述理解HashMap的关键是知道其底层使用拉链表作为数据结构存储数据的,所有的存储、读取、遍历等操作都是建立在这种数据结构之上。理解了这种数据结构时候会对源码的学习有很大帮助。HashMap线程不安全,可以存储null键和null值。数据结构理解HashMap的底层数据结构基本上可以帮助我们理解其所有的方法。我们看到HashMap的内部有一个Node[] table成员,接着我们原创 2016-12-12 21:59:49 · 493 阅读 · 0 评论 -
BlockingQueue浅析
概述concurrent包中,BlockingQueue不光实现了一个完整队列所具有的基本功能,同时在多线程环境下,他还自动管理了多线间的自动等待于唤醒功能,从而使得程序员可以忽略这些细节,关注更高级的功能。 生产者线程向队列插入元素,消费者线程则取出它们,使用队列,可以优雅地从一个线程向另一个线程传递数据。BlockingQueue常用方法 方法 正常动作 特殊情况下动作 put原创 2017-03-18 19:47:27 · 574 阅读 · 0 评论
分享