Java集合Map介面與Map.Entry學習

來源:互聯網
上載者:User

標籤:java   map   iterator   hashmap   map.entry   

Map介面不是Collection介面的繼承。Map介面用於維護鍵/值對(key/value pairs)。該介面描述了從不重複的鍵到值的映射。

  (1) 添加、刪除操作:
  Object put(Object key, Object value): 將互相關聯的一個關鍵字與一個值放入該映像。如果該關鍵字已經存在,那麼與此關鍵字相關的新值將取代舊值。方法返回關鍵字的舊值,如果關鍵字原先並不存在,則返回null
  Object remove(Object key): 從映像中刪除與key相關的映射
  void putAll(Map t): 將來自特定映像的所有元素添加給該映像
  void clear(): 從映像中刪除所有映射
  “鍵和值都可以為null。但是,您不能把Map作為一個鍵或值添加給自身。”
  (2) 查詢操作:
  Object get(Object key): 獲得與關鍵字key相關的值,並且返回與關鍵字key相關的對象,如果沒有在該映像中找到該關鍵字,則返回null
  boolean containsKey(Object key): 判斷映像中是否存在關鍵字key
  boolean containsValue(Object value): 判斷映像中是否存在值value
  int size(): 返回當前映像中映射的數量
  boolean isEmpty() :判斷映像中是否有任何映射
  (3) 視圖操作 :處理映像中鍵/值對組
  Set keySet(): 返回映像中所有關鍵字的視圖集
  “因為映射中鍵的集合必須是唯一的,您用Set支援。你還可以從視圖中刪除元素,同時,關鍵字和它相關的值將從源映像中被刪除,但是你不能添加任何元素。”
  Collection values():返回映像中所有值的視圖集
  “因為映射中值的集合不是唯一的,您用Collection支援。你還可以從視圖中刪除元素,同時,值和它的關鍵字將從源映像中被刪除,但是你不能添加任何元素。”
  Set entrySet(): 返回Map.Entry對象的視圖集,即映像中的關鍵字/值對
  “因為映射是唯一的,您用Set支援。你還可以從視圖中刪除元素,同時,這些元素將從源映像中被刪除,但是你不能添加任何元素。”
  Map.Entry介面
  Map的entrySet()方法返回一個實現Map.Entry介面的對象集合。集合中每個對象都是底層Map中一個特定的鍵/值對。

  通過這個集合的迭代器,您可以獲得每一個條目(唯一擷取方式)的鍵或值並對值變更。當條目通過迭代器返回後,除非是迭代器自身的remove()方法或者迭代器返回的條目的setValue()方法,其餘對源Map外部的修改都會導致此條目集變得無效,同時產生條目行為未定義。
  (1) Object getKey(): 返回條目的關鍵字
  (2) Object getValue(): 返回條目的值
  (3) Object setValue(Object value): 將相關映像中的值改為value,並且返回舊值

例子:java代碼:

package edu.smc.test;    import java.util.HashMap;  import java.util.Iterator;  import java.util.Map;  import java.util.Map.Entry;    public class TestEntrySet {      public static void main(String[] args) {          Map<String,String> map=new HashMap<String,String>();          map.put("1", "張三");          map.put("2", "李四");          map.put("3", "王五");          /*方法一 :迭代程式*/          System.out.println("方法一:");          Iterator iterator=map.entrySet().iterator();          while(iterator.hasNext()){                   Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();             System.out.println("key:"+entry.getKey()+" value"+entry.getValue());              }                 /*方法二*/          System.out.println("方法二:");          for (Map.Entry<String, String> m : map.entrySet()) {                System.out.println("key:"+m.getKey()+" value"+m.getValue());            }         }  }  

結果如下:

  1. 1.方法一:    
  2. 2.key:3 value王五    
  3. 3.key:2 value李四    
  4. 4.key:1 value張三    
  5. 5.方法二:    
  6. 6.key:3 value王五    
  7. 7.key:2 value李四    
  8. 8.key:1 value張三 


Java集合Map介面與Map.Entry學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.