HashMapの使い方に詳しい

2748 ワード

HashMap配列には、一定の規則のサンプルコードがありません.

public class HashMaps {

	public static void main(String[] args) {

		Map map = new HashMap();
		map.put("a", "aaa");
		map.put("b", "bbb");
		map.put("c", "ccc");
		map.put("d", "ddd");

		Iterator iterator = map.keySet().iterator();
		while (iterator.hasNext()) {
			Object key = iterator.next();
			System.out.println("map.get(key) is " + map.get(key));
		}

		Hashtable tab = new Hashtable();
		tab.put("a", "aaa");
		tab.put("b", "bbb");
		tab.put("c", "ccc");
		tab.put("d", "ddd");
		Iterator iterator_1 = tab.keySet().iterator();
		while (iterator_1.hasNext()) {
			Object key = iterator_1.next();
			System.out.println("tab.get(key) is " + tab.get(key));
		}

		TreeMap tmp = new TreeMap();
		tmp.put("a", "aaa");
		tmp.put("b", "bbb");
		tmp.put("c", "ccc");
		tmp.put("d", "ddd");

		Iterator iterator_2 = tmp.keySet().iterator();
		while (iterator_2.hasNext()) {
			Object key = iterator_2.next();
			System.out.println("tmp.get(key) is " + tmp.get(key));
		}
	}

}

オブジェクトをキーとする場合は、キーオブジェクトとしてhashCode()メソッドとequals()メソッドを書き換える必要があります.サンプルコード:


public class Exp2 {

	public static void main(String[] args) {
		HashMap h2 = new HashMap();
		for (int i = 0; i < 10; i++) {
			h2.put(new Element(i), new Figureout());
		}
		System.out.println("h2:");
		System.out.println("Get the result for Element:");
		Element test = new Element(5);
		if (h2.containsKey(test)) {
			System.out.println((Figureout) h2.get(test));
		} else {
			System.out.println("Not found!");
		}
	}

}

class Element {
	int number;

	public Element(int n) {
		number = n;
	}

	public int hashCode() {
		return number;
	}

	public boolean equals(Object o) {
		return (o instanceof Element) && number == ((Element) o).number;

	}
}

class Figureout {
	Random r = new Random();
	boolean possible = r.nextDouble() > 0.5;

	public String toString() {
		if (possible) {
			return "OK!";
		} else {
			return "Impossible!";
		}
	}
}