天天看點

JAVA類集淺談之三

       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&lt;String,String&gt; m = <b>new</b> HashMap&lt;String,String&gt;();

       //存放元素

       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&lt;Entry&lt;String, String&gt;&gt; all = m.entrySet();

       Iterator&lt;Entry&lt;String, String&gt;&gt; iter = all.iterator();

       <b>while</b>(iter.hasNext()){

           Map.Entry&lt;String,String&gt; me = (Map.Entry&lt;String, String&gt;)iter.next();

           System.out.println(me.getKey() + "--&gt;" + me.getValue());

       }

XX--&gt;7654321

MM--&gt;8765302

DD--&gt;1234567

       與HashSet類差不多,隻是此類可以對對象進行排序,可以快速檢索。

<b>範例:</b>使用TreeSet

<b>import</b> java.util.TreeMap;

<b>public</b> <b>class</b> MapDemo03 {

       Map&lt;String,String&gt; m = <b>new</b> TreeMap&lt;String,String&gt;();

       比較上面兩個執行個體的運作結果,就知道,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&lt;String,String&gt; m = <b>new</b> Hashtable&lt;String,String&gt;();