Map:存入键值对,同时要保证键的唯一性.
|--HashMap:
|--HashTable:
|--TreeMap:
Map集合取出元素的原理:
先将Map转成Set集合,然后对Set集合进行迭代.
keySet:将所有的键取出放在Set集合中,在根据Set集合得到的key值取出value值.
entrySet:将键值的关系取出存入Set集合,监制关系有自己的类型,为Map接口中定
义的静态接口Map.Entry.可以通过getKey(),getValue()方法取值,
import java.util.*;
class HashMapDemo
{
public static void main(String[] args)
{
HashMap<String,String>
hm = new
HashMap<String,String>();
//hm.put("zhansan",
"chengdu1"); //不能存相同元素,取值以最后出现的元素为准.
hm.put("zhansan",
"chengdu");
hm.put("lisi",
"beijing");
hm.put("wangwu",
"chongqing");
hm.put("zhaoliu",
"jiangsu");
System.out.println(hm.size());
System.out.println("******keySet******");
//取出元素的第一种方式;keySet()
Set
<String> st = hm.keySet();
for
(Iterator<String> it = st.iterator();
it.hasNext(); )
{
String key =
it.next();
String value
= hm.get(key);
System.out.println(key+":"+value);
}
System.out.println("******entrySet******");
//取出元素的第二种方式;entrySet().
Set <Map.Entry
<String, String>>
entrySet = hm.entrySet();
for (Iterator
<Map.Entry <String,
String>> it = entrySet.iterator();
it.hasNext(); )
{
Map.Entry<String,
String> me = it.next();
String s =
me.getKey();
String v =
me.getValue();
System.out.println(s+":"+v);
}
System.out.println("******entrySet******");
//不常用的values方法取值.
Collection
<String> cl = hm.values();
for
(Iterator<String> it = cl.iterator();
it.hasNext(); )
{
System.out.println(it.next());
}
}
}