《java JDK7 學習筆記》之鍵值對Map


一、常用的Map操作類

image

 

1、使用HashMap

Map也支持泛型語法,泛型的Map實例:

image

   建立Map操作對象時,可以使用泛型語法指定鍵與值的類型。上圖鍵使用String,值也使用String類型。要建立鍵值對應,可以使用put()方法,第一個自變量是鍵,第二個自變量是值。對於Map而言,鍵不會重復,判斷鍵是否重復是根據hashCode()與equals(),作為鍵的對象必須操作hashCode()與equals()方法。若要指定鍵取回對應的值,則使用get()方法。

     在HashMap中建立鍵對值應之后,鍵是無序的,可以在執行結果中看到。如果想讓鍵是有序的,則可以使用TreeMap。

 

2、使用TreeMap

     如果使用TreeMap建立鍵值對應,則鍵的部分將會排序,條件是作為鍵的對象必須操作Comparable接口,或者是在創建TreeMap時指定操作Comparator接口的對象。例如:

image

由於String有操作Comparable接口,因此看到的結果是根據鍵的首字母來排序的(從A到Z的順序)。

 

image

創建了StringComparator類實現了Comparator<String>接口,並重寫了compare()方法。

創建TreeMap時指定StringComparable實例,使得鍵的首字母按照從Z到A的順序排序。

 

3、使用properties

     Properties類繼承自HashTable,HashTable操作了Map接口,所以Properties也有Map的行為。雖然也可以使用put()方法設定鍵值對應,get()方法指定鍵取回值,不過一般常用Properties的setProperties()指定字符串類型的鍵值,getProperties()取回指定字符串類型的鍵對應的字符串類型的值,通常稱為屬性名稱與屬性值。例如:

image

以上的load()方法結束后,會自動關閉InputStream實例。如果命令行自變量指定了person.properties的路徑位置,則執行結果為鍵對應的值。

 

image

image

 

二、訪問Map鍵值

image

上圖中使用的是HashMap實例,所以執行結果是無序的。若是改為TreeMap實例,則執行結果就是有序的。

 

image

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM