JAVA集合二:HashMap和Hashtable
参考链接:
HOW2J.CN
HashMap
HashMap实现了JAVA的Map接口,类似于C++的STL框架的Map,是存储键值对的数据结构。键(key)是唯一的,但值(value)可以重复,如果向HashMap的对象中插入一个键值对,但键已经在HashMap对象中存在了,则会覆盖之前的键值对。
package blog;import java.util.HashMap;
import java.util.Map;public class Main {public static void main(String[] args) {HashMap<Integer, String> map = new HashMap<Integer, String>();//向HashMap中插入键值对map.put(1, "xsy");map.put(2,"theory");map.put(3,"衍射");//检验HashMap中是否包含某个键值System.out.println("HashMap中是否包含key 1: "+map.containsKey(1));//通过指定key获取值System.out.println("HashMap中key为1的值是:"+map.get(1));//删除key为1的元素map.remove(1);//遍历HashMap(推荐)for(Map.Entry<Integer, String> entry: map.entrySet()){System.out.println("Key: "+ entry.getKey()+ " Value: "+entry.getValue());}}
}
运行结果如下:
HashMap中是否包含key 1: true
HashMap中key为1的值是:xsy
Key: 2 Value: theory
Key: 3 Value: 衍射
Hashtable
HashSet同样实现了JAVA的Map接口,和HashMap基本同样的操作,但是HashMap可以用null做键和值,Hashtable不能用null做键和值。
除此之外,HashMap不是线程安全的类,Hashtable是线程安全的类
HashMap的函数没有synchronize修饰,不能保证同一时刻只有一个方法可以进入到临界区,当多个线程同时工作时,可能共同操作共享数据。
Hashtable的函数有synchronize修饰,可以保证同一时刻只有一个方法进入到临界区,避免了脏数据,线程安全。
JAVA集合二:HashMap和Hashtable相关推荐
- Java——集合(HashMap与Hashtable的区别)
* HashMap和Hashtable的区别* 共同点:* 底层都是哈希算法,都是双列集合* 区别:* 1,HashMap是线程不安全的,效率高* Hashtable是线程安全的,效率低 * 2,Ha ...
- java集合之HashMap相关原理 方法
java集合之HashMap Map接口的基于哈希表的实现. 此实现提供所有可选的映射操作,并允许空null值和空null键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashta ...
- 由浅入深理解java集合(二)——集合 Set
2019独角兽企业重金招聘Python工程师标准>>> 一.HashSet类 HashSet是Set接口的典型实现,实现了Set接口中的所有方法,并没有添加额外的方法,大多数时候使用 ...
- Java集合:HashMap源码剖析
一.HashMap概述 二.HashMap的数据结构 三.HashMap源码分析 1.关键属性 2.构造方法 3.存储数据 4.调整大小 5.数据读取 ...
- Java 集合系列11: Hashtable深入解析(1)
戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 QQ群:766946816 概要 前一章,我们学习了HashMap.这一 ...
- 深入Java集合学习系列:Hashtable的实现原理
第1部分 Hashtable介绍 和HashMap一样,Hashtable也是一个散列表,它存储的内容是键值对(key-value)映射.Hashtable继承于Dictionary,实现了Map.C ...
- Java集合之一—HashMap
深入浅出学Java--HashMap 哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈 ...
- 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))
1.Map集合概述和特点 1.需求: 根据学号获取学生姓名 2.Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能 ...
- 深入Java集合系列之七:Hashtable
之前一直是看别人对于其他几个集合框架的分析,现在自己也来分析一下Hashtable的源码以及用法. 首先,为了提高兴趣,我们先来看看这个源码是谁写的. * @author Arthur van Hof ...
- Java集合:HashMap
各种Map总结 就比如问你 HashMap 是不是有序的?你回答不是有序的. 那面试官就会可能继续问你,有没有有序的Map实现类呢?你如果这个时候说不知道的话,那这块问题就到此结束了.如果你说有 Tr ...
最新文章
- 在Ubuntu14.04安装F.lux
- 字符串-拆分和拼接字符串
- Codeforces 914D - Bash and a Tough Math Puzzle 线段树,区间GCD
- long 对应oracle,【转】oracle number与java中long、int的对应
- css菜单下拉菜单_在CSS中创建下拉菜单
- 魔法少女小Scarlet(洛谷P4924题题解,C++语言描述)
- 广东高校计算机专业,广东高校计算机专业就业率最低 专业设置忌盲目
- android 开启子线程执行for循环_C++11之多线程 - Part2 Joining和Detaching的使用
- php mysql 创建数据表_PHP MySQL 创建数据表
- APP端上通用安全体系建设
- 静态电子购物网站设计回忆
- 理解运放的虚断和虚短
- mcinabox运行库下载安装_mcinabox运行库下载
- #后疫情时代的新思考#AI助力,“无接触”服务加速金融数字化转型丨数据猿公益策划...
- 回归中的相关度和决定系数及应用
- Linux操作系统各发行版ISO镜像下载
- Python库pillow(PIL)的使用
- “电梯”英文域名Lifts.com超63.5万结拍
- 上海迪士尼“疯狂动物城”主题园区启动主要施工
- java base grammer
热门文章
- python能做什么毕业设计-有没有适合python做的毕设题目,现在不知道做什么了?...
- python资料-(转)python资料汇总(建议收藏)零基础必看
- python练手经典100例-非常适合Python菜鸟练手的趣味题(内附学习教程分享)
- 用python画圣诞树-圣诞节!教你用 Python 画棵圣诞树
- python有趣小程序-你用python写过那些好玩的微信小程序?
- 在哪里学python-在合肥哪里可以学Python
- python和java的区别-三分钟看懂Python和Java的区别
- 学术|浅谈语音识别、匹配算法和模型
- 查看某个属性在所有浏览器的兼容性
- Vue3学习之第二节:ref函数、reactive函数