前言:学任何技术不是要把它各个知识点背得滚瓜烂熟或者理解清楚就完了,最最关键的是要想想所学内容的应用场景,什么情况下使用。比如学完了Map
,要想想我在什么情况下去使用Map,把现实生活中的场景与知识相结合才是王道。不是说项目经理叫我用Map我就用Map,自己得学以致用
Map
映射:一一对应的关系 地图也是一种映射
Map[所有键值对集合统一的父接口]
HashMap
SortedMap [主键有序的键值对集合的父接口]
TreeMap
*所有Map通用的那些方法~
添加元素:put(key,value)或者putAll(另一个Map对象)
得到元素个数:size() 它返回的是键值对的数量
通过主键如何得到值对象:get(key) 注意区别它不是List的get(int)
如何删除元素:remove(key)
如何判断是否包含指定的键:containsKey(key)
如何判断是否包含指定的值:containsValue(value)
如何清空整个集合:clear() *:Map集合根本不提供iterator() 没法直接进行遍历
public class Test01 { public static void main(String[] args){
Map<String,Integer> map = new HashMap<>();
//如何添加元素不再使用add() 取而代之的是put(k,v) map.put("小翔",210); map.put("小俐",160); map.put("小黑",720); map.put("大白",638);
//根本不提供Collections.putAll()方法
//但是可以Map象.putAll(anotherMap)
//如何得到元素的个数 System.out.println(map.size()); //4
//获得指定键的值,跟List提供的get(int)方法不同System.out.println(map.get("小黑")); //720
//键值对集合删除元素不需要提供键和值,只需要提供键就足够了 map.remove("大白"); System.out.println(map.size()); //3 //如果我们想知道我们班有没有叫小黑的 - 找键对象 - containsKey(k) System.out.println(map.containsKey("小黑"));//true
//如果我们想知道我们班有没有人考750 - 找值对象 - containsValue(v) System.out.println(map.containsValue(750));//false } }
Map和西瓜的关系~ 如何遍历一个Map集合
keySet():得到所有主键对象组成的Set集合
public class Test02 {
public static void main(String[] args){
Map<String,Integer> map = new HashMap<>();
map.put("小翔",210);
map.put("小俪",160);
map.put("小黑",720);
map.put("大白",638); //第一种刀法:一个西瓜切两半 只拿左边那一半
//左边一半全是键 无序且唯一 所以是一个Set集合
Set<String> set = map.keySet();
for(String s : set){
System.out.println(s);//小俪 小黑 大白 小翔
}
}
}
values():得到所有值对象组成的Collection集合
public class Test03 {
public static void main(String[] args){
Map<String,Integer> map = new HashMap<>();
map.put("小翔",210);
map.put("小俪",160