• Java自学-集合框架 HashMap和Hashtable的区别


    HashMap和Hashtable之间的区别

    步骤 1 : HashMap和Hashtable的区别

    HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
    区别1:
    HashMap可以存放 null
    Hashtable不能存放null
    区别2:
    HashMap不是线程安全的类
    Hashtable是线程安全的类

    package collection;
     
    import java.util.HashMap;
    import java.util.Hashtable;
     
    public class TestCollection {
        public static void main(String[] args) {
             
            //HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
             
            HashMap<String,String> hashMap = new HashMap<String,String>();
             
            //HashMap可以用null作key,作value
            hashMap.put(null, "123");
            hashMap.put("123", null);
             
            Hashtable<String,String> hashtable = new Hashtable<String,String>();
            //Hashtable不能用null作key,不能用null作value
            hashtable.put(null, "123");
            hashtable.put("123", null);
     
        }
    }
    

    练习反转key和value

    使用如下键值对,初始化一个HashMap:
    adc - 物理英雄
    apc - 魔法英雄
    t - 坦克

    对这个HashMap进行反转,key变成value,value变成key
    提示: keySet()可以获取所有的key, values()可以获取所有的value

    答案 :
    在这里插入图片描述

    package collection;
        
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Set;
        
    public class TestCollection {
        public static void main(String[] args) {
            HashMap<String,String> map = new HashMap<>();
            HashMap<String,String> temp = new HashMap<>();
            map.put("adc", "物理英雄");
            map.put("apc", "魔法英雄");
            map.put("t", "坦克");
             
            System.out.println("初始化后的Map:");
            System.out.println(map);
            Set<String> keys = map.keySet();
             
            for (String key : keys) {
                String value = map.get(key);
                temp.put(value, key);
            }
            map.clear();
            map.putAll(temp);
             
            System.out.println("反转后的Map:");
            System.out.println(map);
             
        }
    }
    
  • 相关阅读:
    操作系统学习(一)、80x86保护模式内存管理
    Linux命令(十三) 建立目录 mkdir 删除目录 rmdir
    Linux命令(十二) 分割文件 split 合并文件 join
    Linux命令(十一) 显示文件类型 file
    linux下环境变量PS1设置
    Jenkins email-ext邮件通知模板
    building system busy, pls wait !!
    SCP 命令
    NDK Build 用法(NDK Build)
    android下m、mm、mmm编译命令的使用
  • 原文地址:https://www.cnblogs.com/jeddzd/p/12114331.html
Copyright © 2020-2023  润新知