在 Java 中,Hashtable 是一种哈希表(Hash Map)实现的数据结构,用于存储**“键–值对(key-value)”**,可以通过键快速查找对应的值。
下面从概念、特点、用法和对比几个方面说明。
哈希表是一种基于哈希函数的数据结构:
Java 中的 Hashtable 是早期 JDK 就提供的哈希表实现。
Hashtablejava.util.Hashtable
Hashtable<K, V> table = new Hashtable<>();
import java.util.Hashtable;
public class Demo {
public static void main(String[] args) {
Hashtable<String, Integer> map = new Hashtable<>();
map.put("apple", 10);
map.put("banana", 20);
System.out.println(map.get("apple")); // 10
}
}
Hashtable 的特点nullmap.put(null, 1); // 抛 NullPointerException
map.put("a", null); // 抛 NullPointerException
Hashtable 的方法基本都用 synchronized 修饰Hashtable 的常用方法| 方法 | 说明 |
|---|---|
put(k, v) |
添加键值对 |
get(k) |
根据键获取值 |
remove(k) |
删除键值对 |
containsKey(k) |
是否包含某个键 |
containsValue(v) |
是否包含某个值 |
size() |
元素个数 |
clear() |
清空 |
Hashtable vs HashMap| 对比点 | Hashtable | HashMap |
|---|---|---|
| 线程安全 | ✅ 是 | ❌ 否 |
| 允许 null | ❌ 不允许 | ✅ 允许 |
| 性能 | 较低 | 较高 |
| 出现时间 | JDK 1.0 | JDK 1.2 |
| 推荐使用 | ❌ 老旧 | ✅ 常用 |
⚠️ 不推荐新项目使用 Hashtable
更推荐:
HashMapConcurrentHashMapMap<String, Integer> map = new HashMap<>();
Java 的
Hashtable是一种线程安全的哈希表,用于存储键值对,但因其性能较低且不支持 null,已被HashMap/ConcurrentHashMap取代。
如果你愿意,我也可以帮你画哈希表工作原理图或对比 HashMap 的源码实现。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。