JAVA提高教程(13)-认识Map之Hashtable

这个类,在使用上和HashMap的区别不大,其方法都是同步的(Synchronized).

1.package collection.lession13;
2.
3.import java.util.Hashtable;
4.
5./**
6. * 老紫竹JAVA提高教程(13)-认识Map之Hashtable<br>
7. * 这个类继承自一个已经过期不推荐使用的Dictionary类<br>
8. * 目前均推荐实现Map接口<br>
9. *
10. *
11. * @author 老紫竹 JAVA世纪网(java2000.net)
12. *
13. */
14.public class Lession13Hashtable {
15.
16. public static void main(String[] args) {
17.
18. // Hashtable的默认容量为11 ,从源代码可以清楚的看到
19. // public Hashtable() {
20. // this(11, 0.75f);
21. // }
22. // 而 HashMap的默认容量为16
23. // 他们的加载因子都是0.75
24. Hashtable ht = new Hashtable();
25.
26. // 我们先测试一下是否允许key为null;
27. try {
28. ht.put(null, "测试null的键");
29. System.out.println("OK! Hashtable 允许key为null");
30. } catch (NullPointerException ex) {
31. System.out.println("ERROR! Hashtable 不允许key为null");
32. }
33.
34. // 我们再先测试一下是否允许value为null;
35. try {
36. ht.put("测试null的值", null);
37. System.out.println("OK! Hashtable 允许value为null");
38. } catch (NullPointerException ex) {
39. System.out.println("ERROR! Hashtable 不允许value为null");
40. }
41.
42. // 从测试接口可以看到,Hashtable不允许key或者value为null
43. // 其它的操作,和HashMap区别不大,就不再多写了。
44.
45. }
46.}
47.

总结:

如果你前面熟悉了HashMap,那么你可以简单的把Hashtable看成不允许null的同步的HashMap就行了。

内部虽然有一些不同,但对于普通的使用来说,影响不大,可以忽略。

时间: 2024-12-22 08:17:53

JAVA提高教程(13)-认识Map之Hashtable的相关文章

JAVA提高教程(14)-认识Map之LinkedHashMap

Java基础及提高教程目录 Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序.此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表.此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序).注意,如果在映射中重新插入 键,则插入顺序不受影响.(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中.) 此实现可以让客户避免未指定的.由 HashMap(及

JAVA提高教程(12)-认识Map之HashMap

Map里面使用率最多的,应该是HashMap吧,我们先来看看这个 1.package collection.lession12; 2. 3.import java.util.HashMap; 4.import java.util.Iterator; 5.import java.util.Map; 6. 7./** 8. * 老紫竹JAVA提高教程(12)-认识Map之HashMap<br> 9. * 基于哈希表的 Map 接口的实现.<br> 10. * 一个映射不能包含重复的键:

JAVA提高教程(11)-认识Map

Map可以为某些数据提供快速查找功能,通过关键字(key)可以快速的得到对应的 Value,而不用像List那样需要大范围的遍历或特别的算法. 1. 源代码 1.import java.util.ArrayList; 2.import java.util.HashMap; 3.import java.util.HashSet; 4.import java.util.Iterator; 5.import java.util.List; 6.import java.util.Map; 7.impor

JAVA提高教程(10)-认识List列表之Stack

不多说,我们直接看源代码 1.package collection.lession10; 2. 3.import java.util.Arrays; 4.import java.util.List; 5.import java.util.Stack; 6. 7./** 8. * 老紫竹JAVA提高教程(10)-认识List列表之Stack<br> 9. * 实现了LIFO的对象堆栈,<br> 10. * 类本身继承自Vector,扩展了一些方法<br> 11. * &l

JAVA提高教程(9)-认识List列表之LinkedList

LinkedList提供了将链接列表用作堆栈.队列或双端队列的方法,这里不再重复介绍 List的标准操作,只给出其独特方法的使用. 请注意其已经实现的接口 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E> 1.package collection.lession9; 2. 3.import java.util.Arrays; 4.imp

JAVA提高教程(8)-认识List列表之Vector

Vector和ArrayList的最大区别就是Vector的主要集合方法是线程同步的. 1.package collection.lession8; 2. 3.import java.util.Arrays; 4.import java.util.Collection; 5.import java.util.Enumeration; 6.import java.util.Iterator; 7.import java.util.List; 8.import java.util.Vector; 9

JAVA提高教程(6)-认识List列表

列表是很常用的数据结构,感觉比Map和Set用的频率要高一些吧,因为我经常用其返 回数据库的操作结果集 package collection.lession6; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Stack; import

JAVA提高教程(5)-认识Set集合之EnumSet

这个类是1.5开始有的,目前个人使用量几乎为零,因为我很少使用枚举,呵呵.我这 里也是简单介绍一下而已.其使用方式和普通的Set没有区别,只是构造方法有一些特殊 的而已. 1.package collection.lession5; 2. 3.import java.util.Arrays; 4.import java.util.EnumSet; 5.import java.util.Set; 6. 7./** 8. * 老紫竹JAVA提高教程(5)-认识Set集合之EnumSet.<br>

JAVA提高教程(2)-认识Set集合之HashSet

集合在Java里面的作用非凡,我们常用的有Set,List和Map三种,我们先熟悉一下Set ,特别是HashSet的使用 package collection.lession2; import java.util.HashSet; import java.util.Set; /** * 老紫竹JAVA提高教程(2)-认识Set集合之HashSet.<br> * Set用来保存不允许重复的数据.可以是任何对象类型.<br> * JDK5以后,主类型可以通过autobox 放入Set