HashMap 非线程安全的
HashTable线程安全的
package Collections.Map; import java.util.HashMap; public class HashMapTest { public static void main(String[] args) { HashMap<String,String> map = new HashMap<String,String>(); //测试覆盖【值被覆盖】 map.put("a", "apple"); map.put("a", "animal"); System.out.println(map.get("a")); //测试键为空值【键可以为空】 map.put(null, "desk"); System.out.println(map.values()); //测试值为空【值为空】 map.put("b", null); System.out.println(map.keySet()); //null可以做为键 } }
package Collections.Map; import java.util.Hashtable; public class HashTableTest { public static void main(String[] args) { Hashtable<String,String> table = new Hashtable<String,String>(); table.put("a", "apple"); table.put("a", "animal"); System.out.println(table.get("a")); table.put(null, "desk"); System.out.println(table.values()); table.put("b", null); System.out.println(table.keySet()); } }
HashMap 可以将key或value设为null
HashTable不能将key或value设为null