您好,登錄后才能下訂單哦!
Map集合怎么在Java中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Map接口簡介
Map接口是一種雙列集合,它的每個元素都包含一個鍵對象Key和值對象Value,鍵和值對象之間存在一種對應關系,稱為映射。從Map集合中訪問元素時,只要指定了Key,就能找到對應的Value,
Map中的鍵必須是唯一的,不能重復,如果存儲了相同的鍵,后存儲的值會覆蓋原有的值,簡而言之就是鍵相同,值覆蓋。
Map常用方法
put(K key, V value) 添加數據,如果先前包含該鍵的映射,則替換舊值 get(Object key) 返回指定鍵所映射的值 Set<Map.Entry<K,V>> entrySet() 返回地址中包含的映射的Set集合 Set<K> keySet() 返回集合中包含的鍵的Set集合 Collection<V> values() 返回集合中包含的值的Collection集合 remove(Object key) 從該集合中刪除指定鍵的映射
HashMap集合
HashMap集合是Map接口的一個是實現類,它用于存儲鍵值映射關系,但必須保證不出現重復的鍵。接下來通過一個案例來學習HashMap的用法
public class Example01 { public static void main(String[] args) { Map map = new HashMap(); map.put("1", "老大"); map.put("2", "老二"); map.put("3", "老三"); System.out.println("1"+" : "+map.get("1")); //根據鍵獲取值 System.out.println("2"+" : "+map.get("2")); System.out.println("3"+" : "+map.get("3")); } }
在Map中還提供了一個values()方法,通過這個方法可以直接獲取Map中存儲所有值的Collection集合。接下來通過一個案例來演示values()方法的使用
public class Example04 { public static void main(String[] args) { Map map = new HashMap(); map.put("1", "老大"); map.put("2", "老二"); map.put("3", "老三"); Collection values = map.values(); Iterator it = values.iterator(); while(it.hasNext()) { Object value = it.next(); System.out.println(value); } } }
在程序開發中,經常需要取出Map中所有的鍵和值,那么如何遍歷Map中所有的鍵和值呢?
第一種方法是先遍歷Map集合中所有的鍵,再根據鍵獲取相同的值
public class Example02 { public static void main(String[] args) { Map map = new HashMap(); map.put("1", "老大"); map.put("2", "老二"); map.put("3", "老三"); Set keySet = map.keySet(); //獲取鍵的集合 Iterator it = keySet.iterator(); //迭代鍵的集合 while(it.hasNext()) { Object key = it.next(); Object value = map.get(key); //獲取每個鍵所對應的值 System.out.println(key+" : "+value); } } }
第二種方法是先獲取集合中的所有的映射關系,然后從映射關系中取出鍵和值。
public class Example03 { public static void main(String[] args) { Map map = new HashMap(); map.put("1", "老大"); map.put("2", "老二"); map.put("3", "老三"); Set set = map.entrySet(); Iterator it = set.iterator(); //獲取迭代器對象 while(it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); //獲取集合中鍵值對映射 Object key = entry.getKey(); //獲取Entry中的鍵 Object value = entry.getValue(); //獲取Entry中的值 System.out.println(key+" : "+value); } } }
HashMap集合迭代出來元素的順序和存入的順序是不一致的。如果想讓這兩個順序一致,可以使用Java中提供的LinkedHashMap類,它是HashMap的子類,與LinkedList一樣,它也使用雙向鏈表來維護內部元素的關系,使Map元素迭代的順序與存入的順序一致。
通過一個案例來學習LinkedHashMap的用法
public class Example05 { public static void main(String[] args) { Map map = new LinkedHashMap(); //創建Map集合 map.put("1", "老大"); //存儲鍵和值 map.put("2", "老二"); map.put("3", "老三"); Set keySet = map.keySet(); Iterator it = keySet.iterator(); while(it.hasNext()) { Object key = it.next(); Object value = map.get(key); //獲取每個鍵所對應的值 System.out.println(key+" : "+value); } } }
Properties集合
Map接口中還有一個實現類Hashtable,它和HashMap十份相似,區別在于Hashtable是線程安全的。Hashtable存取于元素時速度很慢,目前基本上被HashMap類所取代,但Hashtable類有一個子類Properties,在實際應用中非常重要
Properties只要用于存儲字符串類型的鍵和值,在實際開發中,經常使用Properties集合來存取應用的配置項。假設有一個文本編輯工具,要求默認背景是紅色,字體大小為14px,語言為中文,其位置如下
Backgroup-color = red Font-size = 14px Language = chinese
在程序中可以使用Properties集合對這些配置進行存取,接下來通過一個案例來學習Properties集合的使用
public class Example06 { public static void main(String[] args) { Properties p = new Properties(); //創建Properties對象 p.setProperty("Backgroup-color", "red"); p.setProperty("Font-size ", "14px"); p.setProperty("Language", "chinese"); Enumeration names = p.propertyNames(); while(names.hasMoreElements()) { //循環遍歷所有的鍵 String key =(String) names.nextElement(); String value = p.getProperty(key); //或獲取鍵對應的值 System.out.println(key+" = "+value); } } }
看完上述內容,你們掌握Map集合怎么在Java中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。