Java 學習——Map,java學習map

來源:互聯網
上載者:User

Java 學習——Map,java學習map
前言

     

    最近正在做的高校雲平台項目中接觸Map比較多,關於map的使用不是很熟悉,所以在此將map的幾個方法再次學習下。



 

Map與Collection

 

    提到Map集合介面就不能不提到Collection集合介面,map和Collection都是集合介面,Collection中包含了我們經常用的list和set子介面;而Map是與Collection處於平級的地位;Collection中儲存的是一組對象,而Map儲存的是一個鍵值對(key/value). 


 

Map

 

    在Map對象中,Key是唯一的,不可重複的。null也可以作為key,但這樣的key只能有一個;但是可以有一個或多個key所對應的value都是null。

 

    當我們想判斷map中是否存在某個key時,可以用方法containsKey()來判斷,同樣想判斷是否存在value時用方法containsValue()來判斷;代碼如下:

 

<pre name="code" class="java">public static void main(String[] args) {Map< Serializable, Serializable > map = new HashMap< Serializable, Serializable >();map.put(null,null);map.put("a", "1");map.put("b", "2");map.put("c", "3");if (map.containsKey("a")) {System.out.println("Key=Ture");if (map.containsValue("1")) {System.out.println("value=Ture");}}}


執行結果是:

Key=Ture  value=Ture

 

    Map中提供了一些常用的方法來取出Map中的資料,用的比較多的比如:entrySet()方法,;entrySet()的返回值是個Set集合,此集合的類型為Map.Entry。Map.Entry是Map聲明的一個內部介面,此介面為泛型,定義為Entry<K,V>。它表示Map中的一個實體(一個key-value對)。介面中有getKey(),getValue方法,代碼如下:

 

public static void main(String[] args) {Map< Serializable, Serializable > map = new HashMap< Serializable, Serializable >();map.put(null,null);map.put("a", "1");map.put("b", "2");map.put("c", "3");Set<Entry<Serializable, Serializable>> entrySet= map.entrySet();System.out.println("entrySet="+entrySet);for (Entry key : entrySet) {System.out.println("key.getKey="+key.getKey()+" key.getValue()="+ key.getValue());}}

執行的結果如下:


entrySet=[null=null, a=1, b=2, c=3]

key.getKey=null  key.getValue()=null

key.getKey=a  key.getValue()=1

key.getKey=b  key.getValue()=2

key.getKey=c  key.getValue()=3


 

    接下來要說的是keySet方法,keySet()方法返回值是Map中key值的集合,然後可以通過get(key)遍曆來擷取value值,代碼如下:


public static void main(String[] args) {Map< Serializable, Serializable > map = new HashMap< Serializable, Serializable >();map.put(null,null);map.put("a", "1");map.put("b", "2");map.put("c", "3");Set keySet= map.keySet();System.out.println("keySet="+keySet);for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {Object key = (Object) iterator.next();Object value = map.get(key);System.out.println("key = "+key+ " value="+value);}}

執行的結果如下:


keySet=[null, a, b,c]

key = null  value=null

key = a  value=1

key = b  value=2

key = c  value=3

 

 

    最後要說的是,map還有一個values()方法,values()方法返回值是Map中value值的集合,通過遍曆可以取出value的值,代碼如下:


public static void main(String[] args) {Map<Serializable, Serializable> map = new HashMap<Serializable, Serializable>();map.put(null, null);map.put("a", "1");map.put("b", "2");map.put("c", "3");Collection c = map.values();System.out.println("map.values()=" + map.values());for (Iterator iterator = c.iterator(); iterator.hasNext();) {Object value = (Object) iterator.next();System.out.println("value="+value);}}

代碼執行結果如下:

map.values()=[null,1, 2, 3]

value=null

value=1

value=2

value=3

 


 

小結

 

    本文主要介紹了Map集合中entrySet()方法與keySet()、value()方法的使用,其中前兩者取出的都是key和value的映射關係,只有最後的values取出的是集合中所以的值,沒有鍵,也就沒有了對應的映射關係。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.