
Java集合类
文章平均质量分 63
Seajunnn
hust 软件工程
展开
-
ArrayList线程安全问题以及解决方案
1. 多线程下的ArrayListpublic class ConcurrentArrayList { public static void main(String[] args) throws InterruptedException { List<Integer> list = new ArrayList<>(); Runnable runnable = () -> { for (int i = 0; i原创 2022-04-23 16:09:10 · 9685 阅读 · 0 评论 -
实现一个简易的hashmap
hashmap结构图如图所示:由于红黑树实现的复杂性,本次就只实现一个链表+Entry table的hashmap先定义接口:/** * @author xsj * @create 2022-03-17 22:45 */public interface MyMap<K, V> { V put(K key, V val); V get(K key); interface Entry<K, V> { K getKey();原创 2022-04-09 21:30:28 · 1077 阅读 · 0 评论 -
图文讲解JDK1.7HashMap多线程下线程安全问题
JDK1.7HashMap多线程下会出现死循环和数据丢失的情况本文将对这两种情况出现的进行简单讲解简单讲解:出现死循环的例子可见:https://zhuanlan.zhihu.com/p/174226955直接切入主题发生问题就在转移结点的transfer()函数 源码如下:void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry&原创 2021-04-21 20:21:11 · 216 阅读 · 0 评论