📄 fig10-21.java
字号:
import java.io.*;
import java.util.*;
class Person {
private String name;
public int age;
public Person(String s, int i) {
name = s; age = i;
}
public Person() {
this("",0);
}
public String toString() {
return "(" + name + "," + age + ")";
}
public boolean equals(Object p) {
return name.equals(((Person)p).name);
}
}
class SSN {
private int value;
private int hashcode;
public SSN(int i) {
value = i;
hashcode = (value & 0x0000ffff) + (value >>> 16);
}
public boolean equals(Object ob) {
return value == ((SSN)ob).value;
}
public int hashCode() {
return hashcode;
}
public String toString() {
return "" + value;
}
}
class TestHashtable {
static void print(Iterator it) {
if (it.hasNext()) {
System.out.print(it.next());
while (it.hasNext())
System.out.print(", " + it.next());
}
System.out.println();
}
static void print(Enumeration e) {
if (e.hasMoreElements()) {
System.out.print(e.nextElement());
while (e.hasMoreElements())
System.out.print(", " + e.nextElement());
}
System.out.println();
}
public static void main(String[] ar) {
Hashtable hashtable1 = new Hashtable(4);
hashtable1.put(new Integer(123456789),new Person("Larry",25));
hashtable1.put(new Integer(111111111),new Person("Kathy",30));
System.out.println(hashtable1);
// {111111111=(Kathy,30), 123456789=(Larry,25)}
hashtable1.put(new Integer(222222222),new Person("Kathy",20));
System.out.println(hashtable1);
// {111111111=(Kathy,30), 222222222=(Kathy,20), 123456789=(Larry,25)}
print(hashtable1.entrySet().iterator());
// 111111111=(Kathy,30), 222222222=(Kathy,20), 123456789=(Larry,25)
print(hashtable1.keySet().iterator());
// 111111111, 222222222, 123456789
print(hashtable1.elements());
// (Kathy,30), (Kathy,20), (Larry,25)
print(hashtable1.keys());
// 111111111, 222222222, 123456789
print(hashtable1.values().iterator());
// (Kathy,30), (Kathy,20), (Larry,25)
Iterator it = hashtable1.values().iterator();
((Person)it.next()).age = 28;
System.out.println(hashtable1);
// {111111111=(Kathy,28), 222222222=(Kathy,20), 123456789=(Larry,25)}
hashtable1.put(new Integer(111111111),new Person("Jerry",20));
System.out.println(hashtable1);
// {111111111=(Jerry,20), 222222222=(Kathy,20), 123456789=(Larry,25)}
hashtable1.put(new Integer(111111113),new Person("Frank",30));
System.out.println(hashtable1);
// {111111113=(Frank,30), 123456789=(Larry,25), 222222222=(Kathy,20), 111111111=(Jerry,20)}
System.out.println(hashtable1.get(new Integer(111111111))); // (Jerry,20)
System.out.println(hashtable1.contains(new Person("Jerry",20))); // true
System.out.println(hashtable1.containsValue(new Person("Jerry",20))); // true
System.out.println(hashtable1.remove(new Integer(111111111))); // (Jerry,20)
System.out.println(hashtable1);
// {111111113=(Frank,30), 123456789=(Larry,25), 222222222=(Kathy,20)}
Hashtable hashtable2 = new Hashtable();
hashtable2.put(new SSN(123456789),new Person("Larry",28));
hashtable2.put(new SSN(111111111),new Person("Kathy",30));
System.out.println(hashtable2);
hashtable2.put(new SSN(222222222),new Person("Kathy",20));
System.out.println(hashtable2);
hashtable2.put(new SSN(111111111),new Person("Jerry",25));
System.out.println(hashtable2);
hashtable2.put(new SSN(111111113),new Person("Frank",30));
System.out.println(hashtable2);
// {222222222=(Kathy,20), 111111113=(Frank,30), 111111111=(Jerry,25), 123456789=(Larry,28)}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -