Java HashMap详解:源码分析、hash 原理、扩容机制、加载因子、线程不安全
Java HashMap详解:源码分析、hash 原理、扩容机制、加载因子、线程不安全 这篇文章将会详细透彻地讲清楚 Java 的 HashMap,包括 hash 方法的原理、HashMap 的扩容机制、HashMap 的加载因子为什么是 0.75 而不是 0.6、0.8,以及 HashMap 为什
Java TreeMap详解:从源码分析到实践应用
Java TreeMap详解:从源码分析到实践应用 之前 LinkedHashMap 那篇文章里提到过了,HashMap 是无序的,所以有了 LinkedHashMap,加上了双向链表后,就可以保持元素的插入顺序和访问顺序,那 TreeMap 呢? TreeMap 由红黑树实现,可以保持元素的自然顺
详解 Java 中的双端队列
详解 Java 中的双端队列 Java 里有一个叫做Stack的类,却没有叫做Queue的类(它只是个接口名字,和类还不一样)。 public interface Queue<E> extends Collection<E> {}
当需要使用栈时,Java 已不推荐使用Stack,而是推荐使用更高
Java 优先级队列PriorityQueue
Java 优先级队列PriorityQueue PriorityQueue 是 Java 中的一个基于优先级堆的优先队列实现,它能够在 O(log n) 的时间复杂度内实现元素的插入和删除操作,并且能够自动维护队列中元素的优先级顺序。 通俗来说,PriorityQueue 就是一个队列,但是它不是先
Java LinkedHashMap详解
Java LinkedHashMap详解 俗话说了,“金无足赤人无完人”,HashMap 也不例外,有一种需求它就满足不了,假如我们需要一个按照插入顺序来排列的键值对集合,那 HashMap 就无能为力了。那该怎么办呢?必须得上今天这篇文章的主角:LinkedHashMap。 为了提高查找效率,Ha
LinkedList控诉:我爹都嫌弃我!
LinkedList控诉:我爹都嫌弃我! 换个风格试试水! 大家好,我是 LinkedList,和 ArrayList 是同门师兄弟,但我俩练的内功却完全不同。师兄练的是动态数组,我练的是链表。 问大家一个问题,知道我为什么要练链表这门内功吗? 举个例子来讲吧,假如你们手头要管理一推票据,可能有一张
ArrayList源码详解-Java21版
ArrayList源码详解-Java21版 ArrayList 可以称得上是集合框架方面最常用的类了,可以和 HashMap 一较高下。从名字就可以看得出来,ArrayList 实现了 List 接口,并且是基于数组实现的。 数组的大小是固定的,一旦创建的时候指定了大小,就不能再调整了。也就是说,如
栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈,Stack 没人要了!
栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈栈,Stack 没人要了! 讲真,Stack 这个类在 Java 应用中并不常用,但栈这个数据结构在整个计算机体系中却十分重要。所以我们还是放到集合框架里来讲一讲。 栈(stack),有些地方喜欢称呼它为堆栈,我就很不喜欢,很容易和 heap(堆)搞混,尤其是对于新