Map(接口) 維持
HashMap* 基於一個散列表實現(用它代替Hashtable)
ArrayMap 由一個ArrayList後推得到的Map
TreeMap 在一個
下例包含了兩套測試數據以及一個fill()方法
//: Map
// Things you can do with Maps
package c
import java
public class Map
public final static String[][] testData
{
{
{
{
{
{
{
};
public final static String[][] testData
{
{
{
};
public static Map fill(Map m
for(int i =
m.put(o[i][0], o[i][1]);
return m;
}
// Producing a Set of the keys:
public static void printKeys(Map m) {
System.out.print("Size = " + m.size() +", ");
System.out.print("Keys: ");
Collection1.print(m.keySet());
}
// Producing a Collection of the values:
public static void printValues(Map m) {
System.out.print("Values: ");
Collection1.print(m.values());
}
// Iterating through Map.Entry objects (pairs):
public static void print(Map m) {
Collection entries = m.entries();
Iterator it = erator();
while(it.hasNext()) {
Map.Entry e = (Map.Entry)it.next();
System.out.println("Key = " + e.getKey() +
", Value = " + e.getValue());
}
}
public static void test(Map m) {
fill(m, testData1);
// Map has 'Set' behavior for keys:
fill(m, testData1);
printKeys(m);
printValues(m);
print(m);
String key = testData1[4][0];
String value = testData1[4][1];
System.out.println("ntainsKey(\"" + key +
"\"): " + ntainsKey(key));
System.out.println("m.get(\"" + key + "\"): "
+ m.get(key));
System.out.println("ntainsValue(\""
+ value + "\"): " +
ntainsValue(value));
Map m2 = fill(new TreeMap(), testData2);
m.putAll(m2);
printKeys(m);
m.remove(testData2[0][0]);
printKeys(m);
m.clear();
System.out.println("m.isEmpty(): "
+ m.isEmpty());
fill(m, testData1);
// Operations on the Set change the Map:
m.keySet().removeAll(m.keySet());
System.out.println("m.isEmpty(): "
+ m.isEmpty());
}
public static void main(String args[]) {
System.out.println("Testing HashMap");
test(new HashMap());
System.out.println("Testing TreeMap");
test(new TreeMap());
}
} ///:~
printKeys(),printValues()以及print()方法並不只是有用的工具,它們也清楚地揭示了一個Map的Collection“景象”的產生過程。tw.WINgwIT.coMkeySet()方法會產生一個Set,它由Map中的鍵後推得來。在這兒,它只被當作一個Collection對待。values()也得到了類似的對待,它的作用是產生一個List,其中包含了Map中的所有值(注意鍵必須是獨一無二的,而值可以有重復)。由於這些Collection是由Map後推得到的,所以一個Collection中的任何改變都會在相應的Map中反映出來。
print()方法的作用是收集由entries產生的Iterator(反復器),並用它同時打印出每個“鍵-值”對的鍵和值。程序剩余的部分提供了每種Map操作的簡單示例,並對每種類型的Map進行了測試。
當創建自己的類,將其作為Map中的一個鍵使用時,必須注意到和以前的Set相同的問題。
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19687.html