参考链接:

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相关推荐

  1. Java——集合(HashMap与Hashtable的区别)

    * HashMap和Hashtable的区别* 共同点:* 底层都是哈希算法,都是双列集合* 区别:* 1,HashMap是线程不安全的,效率高* Hashtable是线程安全的,效率低 * 2,Ha ...

  2. java集合之HashMap相关原理 方法

    java集合之HashMap Map接口的基于哈希表的实现. 此实现提供所有可选的映射操作,并允许空null值和空null键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashta ...

  3. 由浅入深理解java集合(二)——集合 Set

    2019独角兽企业重金招聘Python工程师标准>>> 一.HashSet类 HashSet是Set接口的典型实现,实现了Set接口中的所有方法,并没有添加额外的方法,大多数时候使用 ...

  4. Java集合:HashMap源码剖析

    一.HashMap概述 二.HashMap的数据结构 三.HashMap源码分析      1.关键属性      2.构造方法      3.存储数据      4.调整大小 5.数据读取     ...

  5. Java 集合系列11: Hashtable深入解析(1)

    戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 QQ群:766946816 概要 前一章,我们学习了HashMap.这一 ...

  6. 深入Java集合学习系列:Hashtable的实现原理

    第1部分 Hashtable介绍 和HashMap一样,Hashtable也是一个散列表,它存储的内容是键值对(key-value)映射.Hashtable继承于Dictionary,实现了Map.C ...

  7. Java集合之一—HashMap

    深入浅出学Java--HashMap 哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈 ...

  8. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))

    1.Map集合概述和特点 1.需求:    根据学号获取学生姓名 2.Map接口概述     查看API可以知道:     将键映射到值的对象     一个映射不能包含重复的键     每个键最多只能 ...

  9. 深入Java集合系列之七:Hashtable

    之前一直是看别人对于其他几个集合框架的分析,现在自己也来分析一下Hashtable的源码以及用法. 首先,为了提高兴趣,我们先来看看这个源码是谁写的. * @author Arthur van Hof ...

  10. Java集合:HashMap

    各种Map总结 就比如问你 HashMap 是不是有序的?你回答不是有序的. 那面试官就会可能继续问你,有没有有序的Map实现类呢?你如果这个时候说不知道的话,那这块问题就到此结束了.如果你说有 Tr ...

最新文章

  1. 在Ubuntu14.04安装F.lux
  2. 字符串-拆分和拼接字符串
  3. Codeforces 914D - Bash and a Tough Math Puzzle 线段树,区间GCD
  4. long 对应oracle,【转】oracle number与java中long、int的对应
  5. css菜单下拉菜单_在CSS中创建下拉菜单
  6. 魔法少女小Scarlet(洛谷P4924题题解,C++语言描述)
  7. 广东高校计算机专业,广东高校计算机专业就业率最低 专业设置忌盲目
  8. android 开启子线程执行for循环_C++11之多线程 - Part2 Joining和Detaching的使用
  9. php mysql 创建数据表_PHP MySQL 创建数据表
  10. APP端上通用安全体系建设
  11. 静态电子购物网站设计回忆
  12. 理解运放的虚断和虚短
  13. mcinabox运行库下载安装_mcinabox运行库下载
  14. #后疫情时代的新思考#AI助力,“无接触”服务加速金融数字化转型丨数据猿公益策划...
  15. 回归中的相关度和决定系数及应用
  16. Linux操作系统各发行版ISO镜像下载
  17. Python库pillow(PIL)的使用
  18. “电梯”英文域名Lifts.com超63.5万结拍
  19. 上海迪士尼“疯狂动物城”主题园区启动主要施工
  20. java base grammer

热门文章

  1. python能做什么毕业设计-有没有适合python做的毕设题目,现在不知道做什么了?...
  2. python资料-(转)python资料汇总(建议收藏)零基础必看
  3. python练手经典100例-非常适合Python菜鸟练手的趣味题(内附学习教程分享)
  4. 用python画圣诞树-圣诞节!教你用 Python 画棵圣诞树
  5. python有趣小程序-你用python写过那些好玩的微信小程序?
  6. 在哪里学python-在合肥哪里可以学Python
  7. python和java的区别-三分钟看懂Python和Java的区别
  8. 学术|浅谈语音识别、匹配算法和模型
  9. 查看某个属性在所有浏览器的兼容性
  10. Vue3学习之第二节:ref函数、reactive函数