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常用的方法:
返回类型 | 函数名及参数 | 说明 | 示例 |
---|---|---|---|
Object | put(key,value) | 按照key和value插入值,key和value的类型在map定义的时候就要指 | map.put("a",123); |
Object | get(key) | 根据key取值 | map.get("abc") |
Set | keySet() | 取得key集合 | Set |
Object | remove(key) | 按key值删除元素,并返回这个元素的值 | map.remove("ddd"); |
下面是HashMap的使用示例,Map一般使用HashMap这个实现:
Map<String,Integer> map=new HashMap<> ();map.put("a",123);map.put("b",456);map.put("c",324);map.put("d",678);Set<String> keys=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,也是这种格式。