Map的实现类有Hashtable、HashMap、TreeMap
1)HashTable
//下面是应用java散列表的一个例子
import java.util.*;
class Counter{
int i;
public String toString(){
return Integer.toString(i);
}
}
public class Statistics {
public static void main(String[] args){
Hashtable ht=new Hashtable();
for(int i=0;i<1000000;i++){
Integer r=new Integer ((int)(Math.random()*20));
if(ht.containsKey(r)){
((Counter)ht.get(r)).i++;
}else{
ht.put(r, new Counter());
}
}
System.out.println(ht);
}
}
2)HashMap
import java.util.*;
public class ExampleHashMap {
//用Map声明引用HashMap对象
Map calendar = new HashMap();
//将元素对加入到Map引用的对象当中
public ExampleHashMap(String d[],String i[]){
for(int x=0;x<d.length;x++){
calendar.put(d[x], i[x]);
}
}
public static void main(String args[]){
//待加入的数据
String[] dates ={ "10/31/01","01/01/01","03/05/01","02/04/01"};
String[] items= { "Halloween" ,"New Years" ,"Birthday" ,"Anniversary"};
//创建对象实例
ExampleHashMap example =new ExampleHashMap(dates,items);
//输出Map引用对象中的key和value对
System.out.println("map="+example.calendar);
//将Map中的key/value对映射成set集合
Set mappings = example.calendar.entrySet();
System.out.print("object\t\tkey\t\tvalue");
for(Iterator i =mappings.iterator();i.hasNext();){
Map.Entry me=(Map.Entry)i.next();
Object ok=me.getKey();
Object ov=me.getValue();
System.out.print(me+"\t");
System.out.print(ok+"\t");
System.out.println(ov);
}
}
}
3)TreeMap
import java.util.*;
public class ExampleTreeMap {
Map calendar =new TreeMap();
public ExampleTreeMap(String d[],String i[]){
for(int x=0;x<d.length;x++)
calendar.put(d[x], i[x]);
}
public static void main(String args[]){
String[] dates ={ "10/31/01","01/01/01","03/05/01","02/04/01"};
String[] items= { "Halloween" ,"New Years" ,"Birthday" ,"Anniversary"};
ExampleTreeMap example =new ExampleTreeMap(dates,items);
System.out.println("map="+example.calendar);
Set mappings = example.calendar.entrySet();
System.out.print("object\t\tkey\t\tvalue");
for(Iterator i =mappings.iterator();i.hasNext();){
Map.Entry me=(Map.Entry)i.next();
Object ok=me.getKey();
Object ov=me.getValue();
System.out.print(me+"\t");
System.out.print(ok+"\t");
System.out.println(ov);
}
}
}