fig10-17.java

来自「数据结构与算法Java语言版(美)Adam Drozdek著」· Java 代码 · 共 62 行

JAVA
62
字号
import java.io.*;
import java.util.HashMap;

class Person {
    private String name;
    public int age;
    private int hashcode = 0;
    public Person(String n, int a) {
        name = n; age = a;
        for (int i = 0; i < name.length(); i++)
            hashcode += name.charAt(i);
    }
    public Person() {
        this("",0);
    }
    public boolean equals(Object p) {
        return name.equals(((Person)p).name);
    }
    public int hashCode() {
        return hashcode;
    }
    public String toString() {
        return "(" + name + "," + age + ")";
    }
}

class TestHashMap {
    public static void main(String[] a) {
        HashMap cities = new HashMap();
        cities.put(new Person("Gregg",25),"Pittsburgh");
        cities.put(new Person("Ann",30),"Boston");
        cities.put(new Person("Bill",20),"Belmont");
        System.out.println(cities);
        // {(Ann,30)=Boston, (Gregg,25)=Pittsburgh, (Bill,20)=Belmont}
        cities.put(new Person("Gregg",30),"Austin");
        System.out.println(cities);
        // {(Ann,30)=Boston, (Gregg,25)=Austin, (Bill,20)=Belmont}
        System.out.println(cities.containsKey(new Person("Ann",30)));// true
        System.out.println(cities.containsValue("Boston"));          // true
        System.out.println(cities.size());                           // 3
        System.out.println(cities.get(new Person("Ann",30)));        // Boston
        System.out.println(cities.entrySet()); 
        // [(Ann,30)=Boston, (Gregg,25)=Austin, (Bill,20)=Belmont]
        System.out.println(cities.values()); 
        // [Boston, Austin, Belmont]
        System.out.println(cities.keySet()); 
        // [(Ann,30), (Gregg,25), (Bill,20)]
        System.out.println(cities.remove(new Person("Bill",20)));    // Belmont
        System.out.println(cities); 
        // [(Ann,30), (Gregg,25)]
        cities.put(null,"Nashville");
        cities.put(new Person("Kay",44),null);
        System.out.println(cities); 
        // [(Ann,30)=Boston, (Gregg,25)=Austin, (Kay,44)=null, null=Nashville]
        System.out.println(cities.get(new Person("Kay",44)));          // null
        System.out.println(cities.get(new Person("Stan",55)));         // null
        System.out.println(cities.containsKey(new Person("Kay",44)));  // true
        System.out.println(cities.containsKey(new Person("Stan",55))); // false
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?