![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
大叶子不小
这个作者很懒,什么都没留下…
展开
-
DelayQueue实例和源码解析
一、DelayQueue是什么 DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。二、DelayQueue能做什么 1. 淘宝订单业务:下单之后如果三十分钟之内没有付款就自动取消订单。 2. 饿了吗订餐通知:下单成功后60s之后给用户发送短信通知。 3.关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时.原创 2020-11-11 10:17:01 · 257 阅读 · 0 评论 -
HashMap 为什么线程不安全?(真心推荐大家看看)
前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。1.jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况: 1 public class HashMapTest { 2 3 public static void main(String原创 2020-10-19 08:04:26 · 291 阅读 · 0 评论 -
集合总体框架
Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)、。Java集合工具包框架图(如下):大致说明:看上面的框架图,先抓住它的主干,即Collection和Map。1 Collection是一个接口,是高度抽象出来的集合,它包含了集合的基原创 2020-08-26 14:30:43 · 148 阅读 · 0 评论 -
集合01(总体框架)
Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)、。Java集合工具包框架图(如下):在这里插入图片描述大致说明:看上面的框架图,先抓住它的主干,即Collection和Map。1 Collection是一个接口,是高度抽象出来的集原创 2020-07-22 11:27:53 · 111 阅读 · 0 评论 -
数组转为list
1、Arrays.asList(strArray) 方式将数组转换List后,不能对List增删,只能查改,否 则抛异常。此时是java.util.Arrays.ArrayList 这里面有java.util.Arrays里面的内部类,里面没有重写增删方法,就会调用父类的AbstractList,可以看到父类的增删方法,就会报错,即使调用iterator也会报错。 public void add(int index, E element) { throw new Unsupporte原创 2020-07-21 08:20:33 · 431 阅读 · 0 评论 -
hash冲突解决方法
本文主要对以下内容进行介绍: 为什么HashMap需要加载因子? 解决冲突有什么方法? 为什么加载因子一定是0.75?而不是0.8,0.6? 若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正。为什么HashMap需要加载因子?HashMap的底层是哈希表,是存储键值对的结构类型,它需要通过一定的计算才可以确定数据在哈希表中的存储位置:static final int hash(Object key) { int h; return (key原创 2020-07-14 09:31:16 · 454 阅读 · 0 评论 -
ConcurrentHashMap1.7和1.8区别(总结)
ConcurrentHashMap1.7和1.8区别 1.7 1.8 结构 数组+ 单链表 数组+单链表/红黑树(数组长度达到64和链表长度达到8后才会变成红黑树) 插入方式 头插法(容易死循环) 尾插法 扩容后计算方式 所有都需要rehash 只计算扩容大小那一位是1的话移动, ...原创 2020-07-14 08:26:55 · 373 阅读 · 0 评论 -
HashSet如何保证值不重复
1.HashSet原理: 当我们使用Set集合都是需要去掉重复元素的,如果在存储的时候逐个equals()比较,效率较低,哈希算法 提高类去重复的效率,降低了equals()的使用次数 当HashSet调用add()方法存储对象的时候,先调用对象的hashCode()方法,然后在集合中查找是否有哈希值相同的对象 如果没有哈希值相同的对象就直接存入集合 如果有哈希值相同的对象,就和哈希值相同的对象逐个进行equals()笔记,比较结果为false就存入,true则不存 2.将自定义原创 2020-07-13 07:36:49 · 1481 阅读 · 0 评论 -
ConcurrentHashMap在jdk1.7和jdk1.8中的不同;
原博客:https://www.cnblogs.com/lujiango/p/7580558.htmlhttp://www.importnew.com/28263.htmlCouncurrentHashMap 线程安全一、CouncurrentHashMap<jdk1.7>1、底层:(1)底层数据结构:<jdk1.7>:数组(Segment) + 数组(Has...原创 2020-06-19 10:19:53 · 185 阅读 · 0 评论