Map的特点:
存储的数据都是键值对
只保证键是唯一的
唯一的原理是: HashMap他依赖于hashcode和equals
TreeMap 依赖于排序的方法
常用的方法有:
添加元素:put(key,value);
Map<String,String> m=new HashMap();
m.put("牛","6666");//添加集合
m.put("羊","666");
m.put("鸡","777");
System.out.println(m);
判断集合里是否包含指定的键containsKey(key);
Map<String,String>ma=new HashMap<>();
ma.put("湖南","长沙");
ma.put("湖北","武汉");
ma.put("广东","广州");
ma.put("四川","成都");
boolean b1 = ma.containsKey("湖南");
boolean b2 = ma.containsKey("上海");
System.out.println(b1);
System.out.println(b2);
输出的结果是
判断集合中是否包含指定的值containsValue(Value);
Map<String,String>ma=new HashMap<>();
ma.put("湖南","长沙");
ma.put("湖北","武汉");
ma.put("广东","广州");
ma.put("四川","成都");
// boolean b1 = ma.containsKey("湖南");
// boolean b2 = ma.containsKey("上海");
// System.out.println(b1);
// System.out.println(b2);
boolean b3 = ma.containsValue("武汉");
boolean b4 = ma.containsValue("深圳");
System.out.println(b3);
System.out.println(b4);
输出的结果是
Map的三种遍历方式:
keySet:将map集合的所有key存储到单列集合中,遍历单列集合,就可以得到一个个的key,在调用map集合的get方法就可以获取到key对应的value
Map<String,String> ma=new HashMap<>();
ma.put("湖南","长沙");
ma.put("湖北","武汉");
ma.put("广东","广州");
ma.put("四川","成都");
Set<String> str = ma.keySet();
for (String s : str) {
String s1 = ma.get(s);
System.out.println(s+"--"+s1);
输出的结果为:
entrySet:将map集合的key和value封装成一个个的对象【entry对象 node对象】,然后再将这些对象存储到单列集合中,遍历单列集合就可以从中获取到key和vaule;
Map<String,String> ma=new HashMap<>();
ma.put("湖南","长沙");
ma.put("湖北","武汉");
ma.put("广东","广州");
ma.put("四川","成都");
// Set<String> str = ma.keySet();
// for (String s : str) {
// String s1 = ma.get(s);
// System.out.println(s+"--"+s1);
// }
Set<Map.Entry<String, String>> entries = ma.entrySet();
for (Map.Entry<String, String> entry : entries) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"---"+value);
}
}
}
forEach:
public static void main(String[] args) {
Map<String,String> ma=new HashMap<>();
ma.put("湖南","长沙");
ma.put("湖北","武汉");
ma.put("广东","广州");
ma.put("四川","成都");
// Set<String> str = ma.keySet();
// for (String s : str) {
// String s1 = ma.get(s);
// System.out.println(s+"--"+s1);
// }
// Set<Map.Entry<String, String>> entries = ma.entrySet();
// for (Map.Entry<String, String> entry : entries) {
// String key = entry.getKey();
// String value = entry.getValue();
// System.out.println(key+"---"+value);
ma.forEach((String a,String s)->{
System.out.println(a+"--"+s);
});
}
}