11.4 匹配Map

Map保存的数据是成对的,由"名称、值"这样的组合保存。
这类结构应用很广泛。如下表所示:
key(名称)
value(值)
a
123
b
456
c
324
d
678
1.key(名)是唯一的;
2.key和value可以是任何类型,key是String比较常用;
3.图可以看做是链表的一个扩展:链表的下标从0开始,依次加1,是整数,Map的“下标”可以是任何字符串,key就相当于下标。
实际上数组可看做是一种特殊的map:key是按顺序的整数。
Map通常使用HashMap这个实现,两者都在java.util包里,需要导入。
下面介绍Map常用的方法:
返回类型函数名及参数说明示例
Objectput(key,value)按照key和value插入值,key和value的类型在map定义的时候就要指map.put("a",123);
Objectget(key)根据key取值map.get("abc")
SetkeySet()取得key集合Setkeys=map.keySet();
Objectremove(key)按key值删除元素,并返回这个元素的值map.remove("ddd");

下面是HashMap的使用示例,Map一般使用HashMap这个实现:
Map<String,Integermap=new HashMap<();
map.put("a",123);
map.put("b",456);
map.put("c",324);
map.put("d",678);
Set<Stringkeys=map.keySet();
for(String key:keys){
    System.out.println(map.get(key));
}
定义一个map,需要指定两个类型,分别是主键(key)的类型和值(value)的类型。
put方法是往map里添加条目。
从map里取值,则需要提供一个key值,如代码的第8行。
迭代整个map就是迭代所有的key,所以上面第6行代码取得key的集合,它是一个Set类型的集合,然后再遍历这个key的集合,每个key都使用get方法,就可以遍历整个map了。
在Web开发中,很多种数据都是按照这种格式保存,例如http请求发送的数据,就是以“名称、值”发送到服务器;浏览器保存用户临时数据的Cookie,也是这种格式;服务端保存的session,也是这种格式。