将键映射到值的对象,一个映射不能包含重复的键,但值能够重复。每一个键最多只能映射到一个值。java
Map是双列的;Collection是单列的数据结构
Map的键惟一;Collection的子体系Set是惟一的spa
Map集合的数据结构只针对键有效,跟值无关;Collection集合的数据结构是针对元素有效code
一、V put(K key, V value) (能够相同的key值,可是添加的value值会覆盖前面的,返回值是前一个,若是没有就返回null)对象
二、putAll(Map<? extends K, ? extends V> m) 从指定映射中将全部映射关系复制到此映射中(可选操做)。rem
import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("胖虎", 10); map.put("小夫", 99); map.put("大雄", 0); Map<String, Integer> map2 = new HashMap<>(); map2.putAll(map); } }
一、remove() 删除关联对象,指定key对象get
二、clear() 清空集合对象源码
import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("胖虎", 10); map.put("小夫", 99); map.put("大雄", 0); System.out.println(map.size()); // 3 map.remove("胖虎"); System.out.println(map.size()); // 2 map.remove("胖虎"); System.out.println(map.size()); // 2 map.clear(); System.out.println(map.size()); // 0 } }
value get(key); 能够用于判断键是否存在的状况。当指定的键不存在的时候,返回的是null。it
import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("胖虎", 10); map.put("小夫", 99); map.put("大雄", 0); Integer num1 = map.get("胖虎"); Integer num2 = map.get("静香"); System.out.println(num1); // 10 System.out.println(num2); // null } }
一、boolean isEmpty() 长度为0返回true不然falseio
二、boolean containsKey(Object key) 判断集合中是否包含指定的key
三、boolean containsValue(Object value) 判断集合中是否包含指定的value
import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("胖虎", 10); map.put("小夫", 99); map.put("大雄", 0); System.out.println(map.containsKey("胖虎")); // true System.out.println(map.containsValue("0")); // false System.out.println(map.containsValue(0)); // true } }
int size() (前面已经有过了。。。)
1)使用Map.Entry<K, V> 与Map中的entrySet方法配合使用;2)加强for循环
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Test { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("胖虎", 10); map.put("小夫", 99); map.put("大雄", 0); //Iterator遍历 Set<Map.Entry<String, Integer>> set = map.entrySet(); Iterator<Map.Entry<String, Integer>> iterator = set.iterator(); while (iterator.hasNext()) { Map.Entry<String, Integer> entry = iterator.next(); System.out.println(entry.getKey() + "的成绩是:" + entry.getValue()); } //加强for循环遍历 for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println(entry.getKey() + "的成绩是:" + entry.getValue()); } } }
不要忘记!不能在for循环里进行增删操做!
-------------------HashMap与TreeMap-----------------------
对于K来说与Set对应的部分彻底一致,故再也不赘述。
不过对于HashMap来说,这是个蛮深奥的东西,我会另起一篇,深扒源码!