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)); } } }
如果以对象作为key,需要重写作为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!"; } } }