文章目录 前言 数据结构:二叉堆 1.什么是二叉堆 2.堆的基本操作(上浮和下沉) 2.1.上浮(siftup) 2.2.下沉(siftdown) 3.完整实现 3.1.大顶堆 3.2.小顶堆 一.JDK提供的并发容器 二.特点 三.继承关系 四.主要属性 五.排序规则 六.构造方法 源码 建堆/堆化-heapify() 七.入队 非阻塞入队-boolean offer(E e) 扩容-void tryGrow(Object[] array, int oldCap) 非阻塞式入队-boolean offer(E,long,TimeUnit) 非阻塞式入队-void put(E e) 八.出队 出队核心方法-E dequeue() 阻塞式出队-E take() 非阻塞式出队-E poll() 阻塞式超时出队-E poll(timeout, unit) 阻塞式出队-E peek() 移除元素-boolean remove(Object o) removeAt removeEQ 九.源码中堆上浮和下沉调整实现 入队排序 堆的上浮-siftUpComparable 堆的上浮图解 堆的上浮- siftUpUsingComparator 出队排序 堆的下沉-siftDownComparable 堆的下沉图解 堆的下沉-siftDownUsingComparator 十.迭代器 十一.总结 前言 并发编程最佳学习路线 【Java多线程】高并发修炼基础之高并发必须了解的概念 【Java多线程】了解线程的锁池和等待池概念 【Java多线程】了解Java锁机制 【Java多线程】线程通信 【Java基础】多线程从入门到掌握-第十五节.使用Concurrent集合 【Java多线程】JUC之线程池(一)与线程池的初识第四节.线程池的工作队列