java HashMap
/** Map集合的特點* 將鍵映射值的對象,一個映射不能包含重復的值;每個鍵最多只能映射到一個值* * Map集合和Collection集合的區別?* Map集合存儲元素是成對出現的,Map集合的鍵是唯一的,就是可重復的。可以把這個理解為:夫妻對* Collection集合存儲元素是單獨出現的,Collection的兒子Set是唯一的,List是可重復的,可以把這個理解為:光棍* * 注意:* Map集合的數據結構值針對鍵有效,限值無效* Collection集合的數據結構是針對元素有效* * Map集合的功能概述:* 1:添加功能* V put(K key,V value);//添加元素* 如果鍵是第一次存儲,就直接存儲元素,返回null* 如果鍵不是第一次存儲,就用值把以前的值替換掉,返回以前的值* * 2:刪除功能* void clear();//移除所有的鍵值對元素* V remove(Object key);//根據鍵刪除鍵值對元素,并把值返回* * 3:判斷功能* boolean containsKey(Object key);//判斷集合是否包含指定的鍵* boolean containsValue(Object value);//判斷集合是否包含指定的值* boolean isEmpty();//判斷集合是否為空* * 4:獲取功能* set<Map,Entry<E,V>> entrySet();獲取鍵值對的對象集合* V get(Object key);//根據鍵獲取值* Set<K> keySet();//獲取集合中所有鍵的集合* Collection<V> values();//獲取集合中所有值的集合* * 5:長度功能* int size();//返回集合中的鍵值對的對數* */
Map集合的遍歷
方式1,根據鍵查詢值
獲取所有鍵的集合
遍歷鍵的集合,獲取每一個鍵
根據鍵,查詢值
方式2,根據鍵值對的對象查詢鍵和值
獲取所有鍵值對的對象的集合
遍歷鍵值對的對象的集合,獲取到每一個鍵值對的對象
根據鍵值對的對象,查詢鍵和值
方式1,根據鍵查詢值
/** Map集合的遍歷,根據鍵查詢值* * 思路:* A:獲取所有的鍵* B:遍歷鍵的集合,獲取得到每一個鍵* C:根據鍵查詢值* */
import java.util.HashMap;import java.util.Map;import java.util.Set; /* * Map集合的遍歷,根據鍵查詢值 * * 思路: * A:獲取所有的鍵 * B:遍歷鍵的集合,獲取得到每一個鍵 * C:根據鍵查詢值 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, String> map = new HashMap<String, String>(); map.put("hello", "world"); map.put("java", "c++"); map.put("sql", "os"); System.out.println(map); // A:獲取所有的鍵 Set<String> set = map.keySet(); // B:遍歷鍵的集合,獲取得到每一個鍵 for (String key : set) { // C:根據鍵查詢值 String value = map.get(key); System.out.println(key + "---" + value); } }}方式2,根據鍵值對的對象查詢鍵和值
/** Map集合的遍歷,根據對象查詢鍵和值* * 思路:* A:獲取所有的鍵值對對象的集合* B:遍歷鍵值對對象的集合,得到每一個鍵值對的對象* C:獲取鍵和值* */
import java.util.HashMap;import java.util.Map;import java.util.Set; /* * Map集合的遍歷,根據對象查詢鍵和值 * * 思路: * A:獲取所有的鍵值對對象的集合 * B:遍歷鍵值對對象的集合,得到每一個鍵值對的對象 * C:獲取鍵和值 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, String> map = new HashMap<String, String>(); map.put("hello", "world"); map.put("java", "c++"); map.put("sql", "os"); System.out.println(map); // A:獲取所有的鍵值對對象的集合 Set<Map.Entry<String, String>> set = map.entrySet(); // B:遍歷鍵值對對象的集合,得到每一個鍵值對的對象 for (Map.Entry<String, String> me : set) { // C:獲取鍵和值 String key = me.getKey(); String value = me.getValue(); System.out.println(key + "---" + value); } }} /** 1:HashMap和Hashtable的區別?* HashMap線程不安全,效率高,允許null鍵和null值* Hashtable線程安全,效率低,不允許null鍵和null值* * 2:List,Set,Map等接口是否都繼承于Map接口?* List,Set不是繼承自Map接口,它們繼承自Collection接口* Map接口本身就是一個頂層接口* */import java.util.HashMap;import java.util.Hashtable; public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub HashMap<String, String> hm = new HashMap<String, String>(); Hashtable<String, String> ht = new Hashtable<String, String>(); hm.put("hello", "world"); hm.put("java", "c++"); hm.put(null, "sql"); ht.put("hello", "world"); ht.put("java", "c++"); ht.put(null, "sql");// Exception in thread "main" // java.lang.NullPointerException }}感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答