
Java集合全解
文章平均质量分 74
程光CS
Auf dem Wasser zu singen, Op.72, D.774 - Auf dem Wasser zu singen, Op.72, D.774
展开
-
遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素
如何在遍历集合过程中安全移除元素 如果在使用 Iterator 或 ListIterator 遍历集合的过程中,使用了list.remove() 方法来移除元素,而没有通过迭代器自身的 remove() 方法,就有可能导致 **ConcurrentModificationException**。这是因为list内部维护了一个修改计数器modCount, 记录list中添加和删除元素的次数,迭代器对象内部会维护一个迭代器修改计数器expectedModCount,如果被非迭代器方法修改了list,导致mod原创 2023-08-09 21:30:52 · 2822 阅读 · 0 评论 -
List和数组互转方法以及踩坑点
Arrays.asList()返回的是一个Arrays中的内部类ArrayList对象(不是我们平时使用的那个),这个list没有重写实现添加和删除方法,其大小是固定不变的,当调用它的add和remove方法时,会默认抛出UnsupportedOperationException异常。toArray()方法返回的是Object数组,可使用list.toArray(T[] a)传入一个指定类型的数组,获得的结果数据即为指定类型的数组。ArrayList中toArray(T[] a)方法的源码如下,原创 2023-08-09 19:49:31 · 1267 阅读 · 0 评论 -
List按指定规则排序的四种方法
使用Collections.sort(list)可对一个List对象进行升序排序,但如果要按某种指定规则进行排序,可使用如下四种方法:### 1. 使用list.sort(comparator)方法List的sort()方法中可以传入一个自定义Comparator比较器。实现Comparator接口,**重写compare方法**来定义排序规则。- 如果compare()方法返回负整数,表示obj1小于obj2;- 如果compare()方法返回零,表示obj1等于obj2;- 如果compare原创 2023-05-15 18:50:31 · 10003 阅读 · 0 评论 -
Java集合 —— HashMap原理解析
一、HashMap是什么HashMap是一个存储key-value键值对的哈希表,表中每个元素的key都是唯一的(通过equals方法判断),查询时通过key的hashcode值即可定位到元素的存储地址,因此HashMap在理想情况下查询时间复杂度为O(1)。1. 存储下标计算方法HashMap底层通过Entry数组来存储元素,插入元素和查询元素时首先需要计算元素在数组中的存储下标,方法如下:1. 通过key的hashCode()方法获取其hashcode值2. 将这个hashcode值再通过h原创 2023-04-28 17:10:13 · 5530 阅读 · 0 评论 -
LinkedHashMap顺序迭代原理与LRU算法实现
LinkedHashMap可保证通过keySet()、entrySet()、forEach()等方法获取的元素具有顺序性,顺序分为两种:- 添加顺序:获取元素的顺序与其被添加的顺序一致。- 访问顺序:按元素被访问的时间进行排序,越近被访问的排在越后面,put和get等方法都表示访问。在LinkedHashMap通过成员变量accessOrder来决定按哪种顺序排序,默认为false添加顺序,只有通过下面这个构造方法在创建LinkedHashMap时将accessOrder设置为true,才表示访问顺原创 2023-04-28 16:44:49 · 1536 阅读 · 0 评论