HashMapの使い方に詳しい
2748 ワード
HashMap配列には、一定の規則のサンプルコードがありません.
オブジェクトをキーとする場合は、キーオブジェクトとしてhashCode()メソッドとequals()メソッドを書き換える必要があります.サンプルコード:
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!";
}
}
}