containsKey() 是看有没有这个键,也就是有没有这个下标
containsValue() 是看有没有这个键值,也就是有没有这个值
比如
mp.add (10,20);
containsKey (10) 是 true
containsValue (10) 是 false
而containsValue (20) 是 true
区别就是:
前者看没有这个键(下标)后者有没有这个键值(值)
Demo案例:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/*
* containsKey() 是看有没有这个键,也就是有没有这个下标
containsValue() 是看有没有这个键值,也就是有没有这个值
比如
mp.add (10,20);
containsKey (10) 是 true
containsValue (10) 是 false
而containsValue (20) 是 true
区别就是:
前者看没有这个键(下标)后者有没有这个键值(值)
*/
public class day05 {
public static void main(String[] args) {
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> map1 = new HashMap<>();
map1.put("region","西安");
map1.put("num",3.3);
Map<String,Object> map2 = new HashMap<>();
map2.put("region","上海");
map2.put("num",4.3);
Map<String,Object> map3 = new HashMap<>();
map3.put("region","北京");
map3.put("num",5.4);
Map<String,Object> map4 = new HashMap<>();
map4.put("region","西安");
map4.put("num",6.4);
Map<String,Object> map5 = new HashMap<>();
map5.put("region","西安");
map5.put("num",6.1);
Map<String,Object> map6 = new HashMap<>();
map6.put("region","北京");
map6.put("num",6.4);
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
list.add(map5);
list.add(map6);
System.out.println("list:"+list);
Map<String,Object> regionMap = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
String num = String.valueOf(list.get(i).get("num"));
String region = String.valueOf(list.get(i).get("region")).trim();
if(!num.contains(".")){
list.get(i).put("num","0.0");
}
String num2 = String.valueOf(list.get(i).get("num"));
// 如果regionMap已经存在List中的map,则value值相加;否则将List中的map添加到regionMap中;
if(regionMap.containsKey(region)) {
String key = region;
String value = String.valueOf(regionMap.get(key));
regionMap.put(region, Double.parseDouble(value) + Double.parseDouble(num2));
}
else {
regionMap.put(region, num2);
}
}
System.out.println("regionMap:"+regionMap);
}
}
测试输出:
list:[{num=3.3, region=西安}, {num=4.3, region=上海}, {num=5.4, region=北京}, {num=6.4, region=西安}, {num=6.1, region=西安}, {num=6.4, region=北京}]
regionMap:{上海=4.3, 西安=15.799999999999999, 北京=11.8}