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