概述 Map 是 Java 中的一种键值对集合类型的接口,它还提供了一些对数组进行排序、打印、和对 List 进行转换的静态方法。 常用的实现类有: HashMap:哈希图。 LinkedHashMap:链哈希图。 TreeMap:树形哈希图。 HashMap Java 中最常用的 Map 实现就是 HashMap。 数据结构 JDK8 中 HashMap 的数据结构是数组+链表+红黑树。 数组(Node[] table):HashMap 的核心是一个动态数组,用于存储键值对。这个数组被称为桶数组,其每个元素称为一个“桶”(Bucket),每个桶的索引是对键的哈希码通过哈希函数处理得到的。 链表/红黑树:为了解决哈希冲突(两个不同...
概述 List 是 Java 中的一种有序、可重复的集合接口类型。其常用的实现类有: ArrayList:动态数组。 LinkedList:链表。 ArrayList 和 LinkedList 的区别 ArrayList 和 LinkedList 的区别主要体现在数据结构、用途、是否支持随机访问、内存占用等方面。 数据结构 ArrayList 基于数组实现。 LinkedList 基于(双向)链表实现。 适用性 查找访问:ArrayList 在使用下标进行查找时更有优势。 ArrayList 调用 get(int index) 方法时可以直接通过数组下标获取元素,查找的时间复杂度是 $O(1)$; LinkedList 调用...
概述 Java 集合框架可以分类两大类型: Collection:最基本的集合类型的接口,提供了添加、删除、清空等基本操作,还提供了一些对集合进行排序、二分查找、同步的静态方法。 其主要的子接口有: List:有序、可重复的集合。常用的实现类有: ArrayList:动态数组。 LinkedList:链表。 Set:无序、不可重复的集合。常用的实现类有: HashSet:哈希集合。实际上是通过一个 HashMap 来实现。 LinkedHashSet:链哈希集合。 TreeSet:属性集合。是在 TreeMap 的基础上进行实现。 Queue:队列。常用的实现类有: ArrayDeque:双端队列。 PriorityQueue:优...