最新 最热

用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发下使用的 Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。

HashMap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。 遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null HashMap...

2022-06-10
1

JDK1.8 HashMap源码学习

get()方法: 主要是调用getNode()方法,如果找不到返回null 先调用hash计算哈希值,获取通下标,然后再判断第一个节点是否为红黑树,如果是红黑树,则通过树的方式获取,否则还是按照链表的方式获取...

2022-06-10
1

HashMap 在 JDK1.7 和 JDK1.8 的区别

在平常我们用HashMap的时候,HashMap里面存储的key是具有良好的hash算法的key(比如String、Integer等包装类),冲突几率自然微乎其微,此时链表几乎不会转化为红黑树,但是当key为我们自定义的对象时,我们可能采用了不好的hash算...

2022-06-10
1

笔记(三) - Java集合

1、List、Set都是继承Collection接口;List有序且可以有重复元素;Set无序且不能有重复元素 2、List:一个有序集合,可以存储一组不唯一(可以有多个元素引用相同的对象)、有序的对象; 该集合用户可以精准控制每个元素的插入位置...

2022-06-10
1

记录(二)

极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。

2022-06-10
1

HashMap、HashTable、ConcurrentHashMap 的区别

ConcurrentHashMap由Segment数组结构和HashEntry数组结构组成。Segment是一种可重入锁(ReentrantLock),扮演锁的角色;HashEntry用于存储键值对数据。 为了能通过位于散列算法来定位segment数组的索引,必须保证Segment数组...

2022-06-10
1

LeetCode 进阶之路 - 169.多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2...

2022-06-10
1

LeetCode 进阶之路 - 罗马数字转整数

发现使用 switch case 是最快的,hashmap 第二, if else 是最慢的。 所以多个判断的话还是用 switch 比较好。

2022-06-10
1

算法:斐波那契数列 Fibonacci

2 是上两项的和(1+1) 3 是上两项的和(1+2)、 5 是(2+3)、 依此类推!

2022-06-10
1

【协程】ViewModelScope源码解析

使用协程,相信很多同学已经信手拈来了,但是关于ViewModelScope,可能很多同学在用,但却不知道原理,今天来一探究竟。

2022-06-10
1