Java集合框架HashMap与HashTable特点及使用
来源:互联网 发布:淘宝优购 编辑:程序博客网 时间:2024/05/20 09:45
宅男说技术 2016-12-20 23:26
先说下Hash表的结构,Hash表是基于数组和链表的符合数据类型,在数组中存放链表的表头。如图:
HashMap和HashTable就是基于Hash表的存储结构的,键值存放在数组中,对象存放在键值为表头的链表里。下面说说他们主要区别:
1、HashTableHash是同步的,HashMap默认不支持同步;
2、HashTableHash是不允许null做键值和value的,而HashMap则允许有一个键值为null和多个value为null;
3、HashMap与HashTable数组的扩容方式不一样,HashMap中内部数组的初始容量是16,使用达75%向上扩容,按2的指数扩容既16—32—64—128……,HashTable中的内部数组的初始容量是11,也是使用75%扩容,方式为(原容量*2+1)。
说下使用吧
值得一提的是,HashMap操作都是通过键值Key来操作的,如果想通过Value来删除某个元素不能按照常规的remove来做,可以用下面的方法:
HashTable用法也差不多,不多说了。一般教材建议,需要用到同步时用HashTable,不需要同步时用HashMap。其实HashMap可以通过调用Collections的静态方法Collections.synchronizedMap(Map map)进行同步,所以我觉得尽量用HashMap吧,毕竟HashMap比较先进!
本文为头条号作者发布,不代表今日头条立场。
0 0
- Java集合框架HashMap与HashTable特点及使用
- Java集合框架——HashMap与Hashtable
- java集合框架中的HashMap Hashtable区别
- HashTable与HashMap的操作及特点介绍
- 集合框架(HashSet,HashMap,HashTable)
- Java集合框架经典问题——HashMap与Hashtable区别
- 【Java集合】HashMap和Hashtable
- Java集合详解三:HashMap、LinkedHashMap、TreeMap、Hashtable的区别与使用
- JAVA学习笔记(二十二)- 集合HashMap与Hashtable
- Java集合——HashMap与Hashtable的区别
- 集合框架-HashMap和Hashtable的区别
- 集合框架中HashMap 和HashTable concurrentHash
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的使用与区别
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的使用与区别
- java中Hashtable的使用案例及与HashMap的区别
- Java 集合框架-HashMap
- Java集合框架:HashMap
- Java集合框架:HashMap
- mysql用cmd登录、查所有的库、查所有的表、查表下的所有字段等简单的cmd命令
- 初始操作系统中的虚拟内存(上)
- spring-transaction-isolation
- 20170101C++阶段班03_Object C++_04构造函数/赋值函数/拷贝构造/
- linux dialog详解
- Java集合框架HashMap与HashTable特点及使用
- 设置Linux下Mysql表名不区分大小写
- Android 对程序异常崩溃的捕捉
- C# 进制转换(二进制、八进制、十进制、十六进制互转)
- python解析AndroidManifest.xml文件
- 命令行创建maven web项目!
- .NET中代理服务器WebProxy的各种用法
- JavaWeb11-jsp.cookie.session
- 【Git 教程(7)】 Git查看提交历史、Git标签