天天看点

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;();