Map存放的是一對值:key --à value ,主要功能作為查找使用,并不是作為輸出使用。
常用的方法:
· 存資料:public V put(K key,V value)
· 取資料,根據key的值:public V <b>get</b>(Object key)
由方法的定義可以發現,方法使用的是泛型,在使用時最好指定,以免出錯。
使用散列清單實作Map接口,是一種映射類。
<b>範例</b>:使用HashMap
<b>import</b> java.util.HashMap;
<b>import</b> java.util.Map;
<b>public</b> <b>class</b> MapDemo01 {
<b>public</b> <b>static</b> <b>void</b> main(String[] args) {
Map<String,String> m = <b>new</b> HashMap<String,String>();
//存放元素
m.put("張三", "1234567");
m.put("李四", "7654321");
m.put("王五", "8765302");
//查找元素
System.out.println(m.get("張三"));
}
}
<b>運作結果:</b>
1234567
Map接口的對象不能直接使用Iterator輸出,若非要使用,須按以下步驟:
Map--à Set --à Iterator --à Map.Entry --à key、values
<b>範例:</b>使用Iterator輸出Map
<b>import</b> java.util.Iterator;
<b>import</b> java.util.Set;
<b>import</b> java.util.Map.Entry;
<b>public</b> <b>class</b> MapDemo02 {
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();
<b>while</b>(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
與HashSet類差不多,隻是此類可以對對象進行排序,可以快速檢索。
<b>範例:</b>使用TreeSet
<b>import</b> java.util.TreeMap;
<b>public</b> <b>class</b> MapDemo03 {
Map<String,String> m = <b>new</b> TreeMap<String,String>();
比較上面兩個執行個體的運作結果,就知道,HashSet存放是無序的,而TreeSet是有序的。
<b>注意:以上講的Collection</b><b>與Map</b><b>以及Iterator</b><b>都是JAVA2</b><b>帶來的新特性,下面講一下一開始JAVA</b><b>帶來的類集。</b>
與HashMap差不多,但是它是同步的,不支援疊代輸出,即Iterator輸出。
<b>範例:</b>使用HashTable
<b>import</b> java.util.Hashtable;
<b>public</b> <b>class</b> MapDemo04 {
Map<String,String> m = <b>new</b> Hashtable<String,String>();