2Map接口

       Map存放的是一对值:key --à value ,主要功能作为查找使用,并不是作为输出使用。
常用的方法:
       · 存数据:public V put(K key,V value)
       · 取数据,根据key的值:public V get(Object key)
       由方法的定义可以发现,方法使用的是泛型,在使用时最好指定,以免出错。

2.1HashSet

       使用散列列表实现Map接口,是一种映射类。
范例:使用HashMap
import java.util.HashMap;
import java.util.Map;
public class MapDemo01 {
    public static void main(String[] args) {
       Map<String,String> m = new HashMap<String,String>();
       //存放元素
       m.put("张三", "1234567");
       m.put("李四", "7654321");
       m.put("王五", "8765302");
       //查找元素
       System.out.println(m.get("张三"));
    }
}
运行结果:
1234567
 
       Map接口的对象不能直接使用Iterator输出,若非要使用,须按以下步骤:
              Map--à Set --à Iterator --à Map.Entry --à keyvalues
范例:使用Iterator输出Map
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class MapDemo02 {
    public static void main(String[] args) {
       Map<String,String> m = new HashMap<String,String>();
       //存放元素
       m.put("DD", "1234567");
       m.put("XX", "7654321");
       m.put("MM", "8765302");
       //打印元素
       Set<Entry<String, String>> all = m.entrySet();
       Iterator<Entry<String, String>> iter = all.iterator();
       while(iter.hasNext()){
           Map.Entry<String,String> me = (Map.Entry<String, String>)iter.next();
           System.out.println(me.getKey() + "-->" + me.getValue());
       }
    }
}
运行结果:
XX-->7654321
MM-->8765302
DD-->1234567

2.2TreeSet

       HashSet类差不多,只是此类可以对对象进行排序,可以快速检索。
范例:使用TreeSet
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
public class MapDemo03 {
    public static void main(String[] args) {
       Map<String,String> m = new TreeMap<String,String>();
       //存放元素
       m.put("DD", "1234567");
       m.put("XX", "7654321");
       m.put("MM", "8765302");
       //打印元素
       Set<Entry<String, String>> all = m.entrySet();
       Iterator<Entry<String, String>> iter = all.iterator();
       while(iter.hasNext()){
           Map.Entry<String,String> me = (Map.Entry<String, String>)iter.next();
           System.out.println(me.getKey() + "-->" + me.getValue());
       }
    }
}
运行结果:
DD-->1234567
MM-->8765302
XX-->7654321
       比较上面两个实例的运行结果,就知道,HashSet存放是无序的,而TreeSet是有序的。
注意:以上讲的CollectionMap以及Iterator都是JAVA2带来的新特性,下面讲一下一开始JAVA带来的类集。

2.3HashTable

       HashMap差不多,但是它是同步的,不支持迭代输出,即Iterator输出。
范例:使用HashTable
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class MapDemo04 {
    public static void main(String[] args) {
       Map<String,String> m = new Hashtable<String,String>();
       //存放元素
       m.put("DD", "1234567");
       m.put("XX", "7654321");
       m.put("MM", "8765302");
       //打印元素
       Set<Entry<String, String>> all = m.entrySet();
       Iterator<Entry<String, String>> iter = all.iterator();
       while(iter.hasNext()){
           Map.Entry<String,String> me = (Map.Entry<String, String>)iter.next();
           System.out.println(me.getKey() + "-->" + me.getValue());
       }
    }
}