java中map常见方法

java中map常见方法 文章目录常见方法总结表最常用的几个1. put添加或修改2. get根据 key 获取 value3. getOrDefault获取 value不存在就给默认值4. containsKey判断 key 是否存在5. containsValue判断 value 是否存在6. remove根据 key 删除7. size获取键值对数量8. isEmpty判断是否为空9. clear清空 Map10. keySet获取所有 key11. values获取所有 value12. entrySet同时获取 key 和 value常见方法总结表方法作用put(key, value)添加或修改get(key)根据 key 获取 valuegetOrDefault(key, 默认值)获取 value不存在返回默认值containsKey(key)判断 key 是否存在containsValue(value)判断 value 是否存在remove(key)删除某个 keysize()获取键值对数量isEmpty()判断是否为空clear()清空keySet()获取所有 keyvalues()获取所有 valueentrySet()获取所有 key-value最常用的几个算法题里最常用的是这几个map.put(key,value);map.get(key);map.getOrDefault(key,0);map.containsKey(key);map.keySet();map.entrySet();map.size();尤其是统计次数时这句要熟map.put(key,map.getOrDefault(key,0)1);可以理解成当前 key 的次数 原来的次数 1 如果原来没有就从 0 开始加Java 里的Map常见方法可以按用途理解增、删、改、查、遍历、判断。下面用这个例子讲MapString,IntegermapnewLinkedHashMap();表示key 是 String 类型 value 是 Integer 类型比如苹果 - 3 香蕉 - 51. put添加或修改map.put(苹果,3);map.put(香蕉,5);作用往map里放数据。如果 key 不存在就是新增。如果 key 已经存在就是覆盖原来的 value。map.put(苹果,3);map.put(苹果,10);System.out.println(map.get(苹果));输出10因为第二次把苹果对应的值改成了10。2. get根据 key 获取 valueIntegercountmap.get(苹果);完整例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);System.out.println(map.get(苹果));输出3注意如果 key 不存在返回null。System.out.println(map.get(西瓜));输出null3. getOrDefault获取 value不存在就给默认值这个非常常用尤其是统计次数。map.getOrDefault(苹果,0);意思是如果 苹果 存在就返回它的 value 如果 苹果 不存在就返回默认值 0例子MapString,IntegermapnewLinkedHashMap();System.out.println(map.getOrDefault(苹果,0));输出0统计次数常用写法map.put(苹果,map.getOrDefault(苹果,0)1);这句话的意思是苹果原来出现了几次就 1 如果苹果第一次出现就当作 0 14. containsKey判断 key 是否存在map.containsKey(苹果);例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);System.out.println(map.containsKey(苹果));System.out.println(map.containsKey(西瓜));输出true false5. containsValue判断 value 是否存在map.containsValue(3);例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);System.out.println(map.containsValue(3));System.out.println(map.containsValue(10));输出true false这个没有containsKey常用。6. remove根据 key 删除map.remove(苹果);例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);map.remove(苹果);System.out.println(map);输出{香蕉5}7. size获取键值对数量map.size();例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);System.out.println(map.size());输出2注意这里统计的是key 的数量不是 value 的总和。8. isEmpty判断是否为空map.isEmpty();例子MapString,IntegermapnewLinkedHashMap();System.out.println(map.isEmpty());map.put(苹果,3);System.out.println(map.isEmpty());输出true false9. clear清空 Mapmap.clear();例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);map.clear();System.out.println(map);输出{}10. keySet获取所有 keymap.keySet();常用于遍历MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);map.put(橘子,2);for(Stringkey:map.keySet()){System.out.println(key);}输出苹果 香蕉 橘子如果想同时拿到 valuefor(Stringkey:map.keySet()){System.out.println(key map.get(key));}输出苹果 3 香蕉 5 橘子 211. values获取所有 valuemap.values();例子MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);map.put(橘子,2);for(Integervalue:map.values()){System.out.println(value);}输出3 5 212. entrySet同时获取 key 和 value这是遍历 Map 最推荐的方式。for(Map.EntryString,Integerentry:map.entrySet()){System.out.println(entry.getKey() entry.getValue());}完整例子importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){MapString,IntegermapnewLinkedHashMap();map.put(苹果,3);map.put(香蕉,5);map.put(橘子,2);for(Map.EntryString,Integerentry:map.entrySet()){System.out.println(entry.getKey() entry.getValue());}}}输出苹果 3 香蕉 5 橘子 2