数据结构与算法
文章平均质量分 71
maohoo
北漂中的一名java worker,寻觅自己的一片雾霾
展开
-
《算法和数据结构》之栈
1:基本概念栈类似于生活中的死胡同,遵循后入先出的原则,即LIFO(Last In First Out)。/** * The Stack class represents a last-in-first-out * (LIFO) stack of objects. It extends class Vector with five * operations that allow...原创 2018-07-30 17:27:48 · 1194 阅读 · 0 评论 -
老生常谈,HashMap的死循环【基于JDK1.7】
转自占小狼博客问题如果是在单线程下使用HashMap,自然是没有问题的,如果后期由于代码优化,这段逻辑引入了多线程并发执行,在一个未知的时间点,会发现CPU占用100%,居高不下,通过查看堆栈,你会惊讶的发现,线程都Hang在hashMap的get()方法上,服务重启之后,问题消失,过段时间可能又复现了。这是为什么?原因分析在了解来龙去脉之前,我们先看看HashMap的数据...转载 2018-08-09 10:47:08 · 14497 阅读 · 23 评论 -
《算法和数据结构》之队列
基本概念队列(Queue)是一种先进先出(FIFO)的结构,类似于生活中的“独木桥”、“排队”等对于Queue,核心api如下: 方法 描述 void enQueue(T s) 向队列中添加一个新的元素 T deQueue() 移除队列中最早添加的元素 boolean isEmpty() 队列是否为空 int size(...原创 2018-08-07 14:45:02 · 446 阅读 · 0 评论 -
《算法和数据结构》之哈希表(hash table)
转自:www.cnblogs.com/vamei/archive/2013/03/24/2970339.html概念哈希表(hash table)是从一个集合A到另一个集合B的映射(mapping)。映射是一种对应关系,而且集合A的某个元素只能对应集合B中的一个元素。但反过来,集合B中的一个元素可能对应多个集合A中的元素。如果B中的元素只能对应A中的一个元素,这样的映射被称为一一映射。...转载 2018-08-07 15:47:48 · 3597 阅读 · 0 评论 -
HashMap源码和JDK1.8以后的一些变化
内部实现JDK1.8以后 HashMap的数据结构发生了一些改变,从单纯的数组加链表结构变成数组+链表+红黑树.如图 其中的Node是HashMap的静态内部类,实现了Map.Entry接口,本质就是一个KV映射,上图中的小圆圈就是一个Nodestatic class Node<K,V> implements Map.Entry<K,V> { fin...原创 2018-08-08 16:11:46 · 2092 阅读 · 1 评论