HashMap和Hashtable之间的区别

步骤 1 : HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式

区别1:

HashMap可以存放 null

Hashtable不能存放null

区别2:

HashMap不是线程安全的类

Hashtable是线程安全的类

  1. package collection;
  2. import java.util.HashMap;
  3. import java.util.Hashtable;
  4. public class TestCollection {
  5. public static void main(String[] args) {
  6. //HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
  7. HashMap<String,String> hashMap = new HashMap<String,String>();
  8. //HashMap可以用null作key,作value
  9. hashMap.put(null, "123");
  10. hashMap.put("123", null);
  11. Hashtable<String,String> hashtable = new Hashtable<String,String>();
  12. //Hashtable不能用null作key,不能用null作value
  13. hashtable.put(null, "123");
  14. hashtable.put("123", null);
  15. }
  16. }

练习反转key和value

使用如下键值对,初始化一个HashMap:

adc - 物理英雄

apc - 魔法英雄

t - 坦克

对这个HashMap进行反转,key变成value,value变成key

提示: keySet()可以获取所有的key, values()可以获取所有的value

答案 :

  1. package collection;
  2. import java.util.Collection;
  3. import java.util.HashMap;
  4. import java.util.Set;
  5. public class TestCollection {
  6. public static void main(String[] args) {
  7. HashMap<String,String> map = new HashMap<>();
  8. HashMap<String,String> temp = new HashMap<>();
  9. map.put("adc", "物理英雄");
  10. map.put("apc", "魔法英雄");
  11. map.put("t", "坦克");
  12. System.out.println("初始化后的Map:");
  13. System.out.println(map);
  14. Set<String> keys = map.keySet();
  15. for (String key : keys) {
  16. String value = map.get(key);
  17. temp.put(value, key);
  18. }
  19. map.clear();
  20. map.putAll(temp);
  21. System.out.println("反转后的Map:");
  22. System.out.println(map);
  23. }
  24. }

Java自学-集合框架 HashMap和Hashtable的区别的更多相关文章

  1. Java自学-集合框架 HashMap

    Java集合框架 HashMap 示例 1 : HashMap的键值对 HashMap储存数据的方式是-- 键值对 package collection; import java.util.HashM ...

  2. Java自学-集合框架 ArrayList和LinkedList的区别

    ArrayList和LinkedList的区别 步骤 1 : ArrayList和LinkedList的区别 ArrayList ,插入,删除数据慢 LinkedList, 插入,删除数据快 Arra ...

  3. Java自学-集合框架 ArrayList和HashSet的区别

    Java ArrayList和HashSet的区别 示例 1 : 是否有顺序 ArrayList: 有顺序 HashSet: 无顺序 HashSet的具体顺序,既不是按照插入顺序,也不是按照hashc ...

  4. Java自学-集合框架 HashSet

    Java集合框架 HashSet 示例 1 : 元素不能重复 Set中的元素,不能重复 package collection; import java.util.HashSet; public cla ...

  5. Java自学-集合框架 Collections

    Java集合框架 工具类Collections Collections是一个类,容器的工具类,就如同Arrays是数组的工具类 步骤 1 : 反转 reverse 使List中的数据发生翻转 pack ...

  6. Java自学-集合框架 Collection

    Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进 ...

  7. Java自学-集合框架 二叉树

    Java集合框架 二叉树 示例 1 : 二叉树概念 二叉树由各种节点组成 二叉树特点: 每个节点都可以有左子节点,右子节点 每一个节点都有一个值 package collection; public ...

  8. Java自学-集合框架 LinkedList

    Java集合框架 LinkedList 序列分先进先出FIFO,先进后出FILO FIFO在Java中又叫Queue 队列 FILO在Java中又叫Stack 栈 示例 1 : LinkedList ...

  9. Java自学-集合框架 与数组的区别

    Java集合框架与数组的区别 示例 1 : 使用数组的局限性 如果要存放多个对象,可以使用数组,但是数组有局限性 比如 声明长度是10的数组 不用的数组就浪费了 超过10的个数,又放不下 //Test ...

随机推荐

  1. ubuuntu截图

    方法1: 按 print screen sysrq 方法2: 系统设置 选择键盘 选择快捷键窗口 选择截图 按照自己的习惯更改快捷键即可.

  2. EnumSet

    这个概念是在 Effective Java中了解到的, 可以通过EnumSet来代替位域这种方式表达.并不是很常见的概念, 因此记录下.如果在这之前恰好了解过 bitmap这种数据结构就更好了.不了解 ...

  3. 折纸(folding)

    问题 C: 折纸 时间限制: 1 Sec  内存限制: 128 MB[提交] [状态] 题目描述 现有一个W*H的矩形纸张,求至少要折多少次才能使矩形纸张变成w*h的矩形纸张.注意,每次的折痕都要平行 ...

  4. 用 async/await 来处理异步(转)

    昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了. 先说一下async的用法,它作为一个 ...

  5. 设置textarea不可拉伸

    默认情况下,我们将鼠标移动到textarea的右下角时发现文本域是可以通过拖动的方式改变其大小的,这会影响我们原本的页面布局.若想设置其不可拖动,可为其添加如下属性: style="resi ...

  6. vue项目用npm安装sass包遇到的问题及解决办法

    IDEA启动vue程序,浏览器访问时出现如下情况的关于node-sass的错误: 错误1: Module build failed (from ./node_modules/sass-loader/d ...

  7. Vue - 实现双击显示编辑框;自动聚焦点击的显示框;点击编辑框外的地方,隐藏编辑框

    实现这三个功能的踩坑记录. 1. 需求 在Vue中,有一个input, 双击时编辑文本,点击该input节点外的其他地方,则取消编辑. 那么这里有三个要实现的地方 第一是双击显示编辑框. 第二是自动聚 ...

  8. k8s Learning Notes

    Kubernetes - 组件介绍 MESOS APACHE 分布式资源管理框架 2019-5 Twitter > Kubernetes Docker Swarm 2019-07 阿里云宣布 D ...

  9. Android学习07

    自定义Dialog 创建一个Java类CustomDialog继承Dialog. package com.example.helloworld.widget; import android.app.D ...

  10. C++中map的介绍用法以及Gym题目:Two Sequences

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字(key),每个关键字只能在map中出现一次,第二个可能称为该关键字的值(value))的数据 处理能力,由于这个特性,它完成有可能 ...