將鍵映射到值的對象,一個映射不能包含重複的鍵,但值能夠重複。每一個鍵最多隻能映射到一個值。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來說,這是個蠻深奧的東西,我會另起一篇,深扒源碼!