以下是Java中HashTable和HashMap类之间的显着差异。
哈希表 | 哈希映射 | |
---|---|---|
已同步 | HashTable已同步。 | HashMap不同步。 |
线程安全 | HashTable是线程安全的。 | HashMap不是线程安全的。 |
空对象 | HashTable不允许使用空键或空值。 | HashMap允许一个空键和多个空值。 |
性能 | HashTable更快。 | HashMap比HashTable慢。 |
从Java版本开始 | 1.2 | 1.5 |
import java.util.HashMap; import java.util.Hashtable; import java.util.Map; public class Tester { public static void main(String args[]) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "One"); map.put("2", "Two"); map.put("3", "Three"); map.put("5", "Five"); map.put("6", "Six"); System.out.println("HashMap: " + map); Map<String, String> map1 = new Hashtable<String, String>(); map1.put("1", "One"); map1.put("2", "Two"); map1.put("3", "Three"); map1.put("5", "Five"); map1.put("6", "Six"); System.out.println("HashTable: " + map1); } }
输出结果
HashMap: {1 = One, 2 = Two, 3 = Three, 5 = Five, 6 = Six} HashTable: {6 = Six, 5 = Five, 3 = Three, 2 = Two, 1 = One}