HashMap定义 说的专业一点,HashMap是常用的用于存储key value键值对数据的一个集合,底层是基于对Map的接口实现。每一个键值对又叫Entry,这些Entry分散的存储在一个由数组和链表组成的集合中。当然在Java8中,Entry变成了Node。 说的通俗一点,就像你去住酒店,你下 ...
分类:
其他好文 时间:
2020-04-21 09:53:41
阅读次数:
58
1、Lambda表达式 2、函数是接口 3、方法引用与构造器应用 4、Stream API 5、接口中的默认方法与静态方法 6、新时间日期API 7、其他新特性 速度更快 1.8:hash map 改变数组-链表-红黑树(新增慢其他都快) 1.8:ConcurrentHashMap 不采用锁用CAS ...
分类:
编程语言 时间:
2020-04-20 23:23:00
阅读次数:
71
1.面试题:HashMap中hash函数是怎么实现的?还有哪些hash函数的实现方式? 对于key的hashCode做hash操作,无符号右移16位然后做异或运算。还有平方取中法,伪随机数法和取余数法。这三种效率都比较低。而无符号右移16位异或运算效率是最高的。至于底层是如何计算的我们下面看源码时给 ...
分类:
其他好文 时间:
2020-04-20 22:03:30
阅读次数:
90
HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 JDK1.8 之前 HashMap 由 数组+链表 组成的 ...
分类:
其他好文 时间:
2020-04-20 22:01:12
阅读次数:
71
Java 多线程进阶 并发数据结构 并发数据结构 常用的数据结构是线程不安全的 ArrayList/HashMap/HashSet 非同步的 多个线程同时独写, 可能会抛出异常或数据错误 传统Vector/HashTable等同步数据集合性能过差 并发数据结构: 数据添加或删除 阻塞式集合: 当集合 ...
分类:
编程语言 时间:
2020-04-20 16:00:58
阅读次数:
66
ConcurrentHashMap是Java中的一个线程安全且高效的HashMap实现。 在JDK1.7中ConcurrentHashMap采用了数组+Segment分段锁的方式实现。 1.Segment(分段锁) 初始容量 16 ConcurrentHashMap中的分段锁称为Segment,它即 ...
分类:
其他好文 时间:
2020-04-20 14:11:47
阅读次数:
69
深入理解HashMap和LinkedHashMap的区别 我们知道HashMap的变量顺序是不可预测的,这意味着便利的输出顺序并不一定和HashMap的插入顺序是一致的。这个特性通常会对我们的工作造成一定的困扰。为了实现这个功能,我们可以使用LinkedHashMap。 LinkedHashMap详 ...
分类:
其他好文 时间:
2020-04-20 14:10:45
阅读次数:
73
HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是“链表散列”,也就是数组+链表 ,key唯一的value可以重复,允许存储null 键null 值,元素无序。 数组:一段连续控件存储数据,指定下标的查找,时间复杂度O(1),通过给定值查找,需要遍历数组,自已对比复杂度为O( ...
分类:
其他好文 时间:
2020-04-20 13:59:48
阅读次数:
58
hashMap1.8并不能完全解决死循环的问题,可以用concurrentHashMap hashMap的属性: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializab ...
分类:
其他好文 时间:
2020-04-20 13:55:04
阅读次数:
50
CurrentHashMap、HashMap、HashTable的区别 HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11, ...
分类:
其他好文 时间:
2020-04-19 19:43:28
阅读次数:
82