当前位置: 移动技术网 > IT编程>开发语言>Java > Java自学-集合框架 HashMap和Hashtable的区别

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

2019年12月29日  | 移动技术网IT编程  | 我要评论

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);
 
    }
}

练习

使用如下键值对,初始化一个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);
         
    }
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网