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(堆)搞混,尤其是对于新
Java21之顺序集合
Java21之顺序集合 Java21中的新特性之一便是引入了Sequenced Collections(顺序集合)。这一特性通过JEP 431引入,旨在提供一种有序的、线程安全的集合实现,以满足在多线程环境下处理大量数据的需求。 背景和动机 要介绍顺序集合,就首先要说明一下出现顺序(encounte
String底层实现从char数组到byte数组的转变
String底层实现从char数组到byte数组的转变 Java中String的底层实现从早期的char[]数组转向后来的byte[]数组,主要是为了优化内存使用和支持更广泛的字符编码。 ###为什么会发生转变? 早期的Java版本(Java 8及更早)中,String内部是使用char[]数组来存