Set接口 1、特点 元素不能重复,无序,Set接口中的方法和collection的方法一样 HashSet:内部实际结构是哈希表,是不同步的。 哈希表:将对象经过哈希算法计算成该对象的哈希值,并把哈希值存放在哈希表中,其实哈希值就相当于数组中的角标。所以在查找的时候直接根据哈希值查询,速度很快。 ...
分类:
其他好文 时间:
2020-08-26 18:51:22
阅读次数:
49
阅读源码是每个优秀开发工程师的必经之路,那么这篇文章就来讲解下为什么要阅读源码以及如何阅读源码。首先来说下为什么要读源码,有学习源码的必要吗?为什么要阅读源码?关于为什么阅读和学习源码,我个人认为可能有以下几点:(一)吊打面试官,应对面试为了找到更好的工作,应对面试,因为在面试中肯定会问到源码级别的问题,比如:为什么HashMap是线程不安全的?如果你没有阅读过源码,面试官可能会对回答的结果不满意
分类:
其他好文 时间:
2020-08-26 18:41:37
阅读次数:
43
正文加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,它衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度越高,反之愈小。对于使用链表法的散列表来说,查找一个元素的平均时间是O(1+a)。因此如果负载因子越大,对空间的利用更充分,然而后果是查找效率的降低;如果负载因子太小,那么散列表的数据将过于稀疏,对空间造成严重浪费。如果你看过源代码,你会发现在初始条件下,HashM
分类:
其他好文 时间:
2020-08-25 15:58:05
阅读次数:
58
经常会看到说HashMap是线程不安全的,ConcurrentHashMap是线程安全的等等说法,不禁有个疑问,HashMap 为什么是线程不安全的呢? 下面为jdk1.8源码分析 final V putVal(int hash, K key, V value, boolean onlyIfAbse ...
分类:
编程语言 时间:
2020-08-20 18:18:26
阅读次数:
102
import java.sql.SQLException; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util. ...
分类:
数据库 时间:
2020-08-19 19:39:50
阅读次数:
82
武培轩推荐搜索Java数据结构SpringBootMySQLRedisNginxif快还是switch快?HashMap的初始化size要不要指定,指定之后性能可以提高多少?各种序列化方法哪个耗时更短?无论出自何种原因需要进行性能评估,量化指标总是必要的。在大部分场合,简单地回答谁快谁慢是远远不够的,如何将程序性能量化呢?这就需要我们的主角JMH登场了!JMH简介JMH(JavaMicrobenc
分类:
其他好文 时间:
2020-08-19 19:30:22
阅读次数:
57
经典规则:如果重写了equals,必须重写hashCode 为什么??? 这个规则考虑的应用场景:如果你的对象可能放入HashMap,HashSet,不重写会出问题 问题场景: new一个对象,重写了equals,但是没有重写hashCode,再new一个对象,原对象.equals(新对象)等于tr ...
分类:
其他好文 时间:
2020-08-18 13:18:40
阅读次数:
49
package LeetCode_582 import java.util.* import kotlin.collections.ArrayList import kotlin.collections.HashMap /** * 582.Kill Process * (Prime) *Given ...
分类:
其他好文 时间:
2020-08-10 09:25:07
阅读次数:
54
105. 复制带随机指针的链表 中文English 给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。 返回一个深拷贝的链表。 挑战 可否使用O(1)的空间 hashmap写法,O(n)时间复杂度 """ Definition for singly-linked l ...
分类:
其他好文 时间:
2020-08-10 00:07:54
阅读次数:
70
HashMap jdk1.7版本,底层是数组+链表,元素的插入使用头插法,可能形成数据丢失或环形链表。 jdk1.8版本,底层是数组+链表+红黑树,元素的插入使用尾插法,数据覆盖的情况。 扩容机制:LoadFactory默认0.75,创建空数组重新Hash。 resize线程不安全:多线程之间put ...
分类:
编程语言 时间:
2020-08-09 09:22:43
阅读次数:
88