JAVA集合
文章平均质量分 72
万小猿
这个作者很懒,什么都没留下…
展开
-
Map先排序value小->大再排序key小->大,ArrayList与Stream分别实现
一、题目 对这个map进行排序,要求是先排序value小->大再排序key小->大(在value相等的情况)结果:二、解法1.比较传统的解法:ArrayList其中有任何不懂的请到QQ群来问我,免费解答~~ QQ群在我收藏了最多的博文里的 public static void main(String[] args) { Map<String, Integer> map = new HashMap<String,...原创 2021-09-02 21:25:18 · 594 阅读 · 0 评论 -
HashMap源码分析(保姆式注解):三大方法(构造、Put、Remove) ;附带面试考点及博主免费答疑
前言 想速成的建议直接背考点(第四点看)。建议知其所以然~~学习知识要慢慢来。一、构造方法HashMap()1.时间复杂度所以导致了有这三个数据结构(数组+链表+红黑树:接近二分查找)构成HashMap2.链表转成红黑树:链表长度大于8,8是泊松分布决定的(跟原始数组长度设置为16的原因一样)3.扩容一般都是快满的时候扩容,数组已经填了0.75倍了。4.没有声明任何空间,在构造HashMap的时候(4种构造方法),进行调用方法的时候,会先判定table数组大小..原创 2021-01-15 15:40:26 · 243 阅读 · 0 评论 -
ConcurrentHashMap源码分析(保姆式讲解):Put、扩容原理详解 博主可答疑
一、前言:为什么要有ConcurrentHashMap 我们用HashMap不香吗?感觉什么都能干!但是呢。。。 在多个线程同时使用HashMap的时候可能就会出错,你不信可以试试用Put方法,可能你20调线程Put20个不同的值,你会发现最后map中没有20个K-V对。因为比如其中两个线程插入的值所算出的哈希值是一样,所以他们是插入同一个下标。那么开始展现真是的技术了! 线程不安全:两个线程的put举例现在有两个线程,一个叫大哈,一个叫二哈,他们两个手里都有一个数,大...原创 2021-01-16 16:47:31 · 702 阅读 · 1 评论