浅谈hashmap 以及其与hashtable,currenthashmap区别
来源:互联网 发布:linux开机启动流程图 编辑:程序博客网 时间:2024/06/03 18:09
首先我们来简单解析一下hashmap,java中使用hashcode,与equlse方法判断元素是否重复,,,首先将key通过hash算法算成索引值,然后判断该索引值对应的内存里是否有东西,没有就存进去,有再用equlse比较相同则替换,不同就生成链表,这是Java1.7及一下的用法。。。
我们来看看1.8,如果该链表过大在查询的时候就会在建表中一个一个去equlse,java8中当链表大于一定长度就会将其转化为红黑树,这样使得其查询快,不过增删比链表慢。。。
下面我们来看看他们三个的区别:
HashMap:每个隔间都没锁门,有人想上厕所,管理员指给他一个隔间,里面没人的话正常用,里面有人的话把这个人赶出来然后用。
优点,每个人进来不耽误都能用;缺点,每一个上厕所的人都有被中途赶出来的危险。
Hashtable:在卫生间外面安装一个大门,有人想上厕所,问管理员要一个钥匙进门,把门反锁用,用完后出来,把钥匙交换给管理员。在这个人上厕所期间,其他所有人都必须在外面排号。
优点,每个人都能安心上完厕所;缺点,卫生间外面可能已经出了人命。 =_=
ConcurrentHashMap:在卫生间每个隔间安装门锁,有人想上厕所,管理员指给他一个隔间,进来后这个隔间如果没人在用则直接用,如果有人正在用,则排号。在这期间其他人会按规则分到不同的隔间,重复上述行为。
优点:每个人都能安心上厕所,外面排队的也被均匀分摊。缺点:。。。
阅读全文
0 0
- 浅谈hashmap 以及其与hashtable,currenthashmap区别
- hashmap,hashtable与currenthashmap
- HashMap HashTable和CurrentHashMap的区别
- HashTable, hashmap ,currenthashmap
- hashSet,hashMap,hashTable,currentHashMap
- java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别
- java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别
- 浅谈HashMap与HashTable
- HashMap 与HashTable 区别
- HashMap与HashTable区别
- Hashtable与HashMap区别
- HashMap与HashTable区别
- hashTable与HashMap区别
- HashMap与HashTable区别
- HashMap与Hashtable区别
- HashMap与HashTable区别
- hashMap与hashTable区别
- HashMap与Hashtable区别
- java并发
- Java8 Lambda表达式和Stream API示例 (像Scala了)
- Win7下完全卸载Oracle 11g的步骤
- js的基本类型和引用类型
- sas统计分析学习笔记(一)
- 浅谈hashmap 以及其与hashtable,currenthashmap区别
- 同一个web项目,hibernate的mysql和sqlservice的两个不同数据库配置
- 测试道路之第四周-Linux基础命令使用
- JQuery动态添加/删除class样式
- 几种不常有IO流,自己用,比较粗糙
- leetcode 1 two sum 刷题学习笔记
- oracle用户创建及权限设置
- Ubuntu安装BeeGFS
- 解决vi编辑器不能使用方向键和退格键问题