欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-07 11:30:08
HashMap和Hashtable之间的区别 步骤 1 : HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式 区别1: HashMap可以存放 null Hashtable不能存放null 区别2: HashMap不是线程安全的 ......

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

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

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