更新時(shí)間:2022-07-12 來源:黑馬程序員 瀏覽量:
HashMap集合存儲(chǔ)的元素的鍵值是無序且不可重復(fù)的,為了對(duì)集合的元素的鍵值進(jìn)行排序,Map接口提供了另一個(gè)可以對(duì)集合中元素鍵值進(jìn)行排序的類TreeMap。下面通過一個(gè)案例演示TreeMap集合的用法,如文件6-19所示。
import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class Example19 { public static void main (String[] args) { TreeMap map = new TreeMap (); map.put(3, "李四"); // 存儲(chǔ)鍵和值 map.put(2, "王五"); map.put(4, "趙六"); map.put(3, "張三"); Set keySet = map.keySet (); Iterator it = keySet.iterator (); while (it.hasNext()) { Object key = it.next (); Object value = map.get(key); //獲取每個(gè)鍵所對(duì)應(yīng)的值 System.out.println (key+":"+value); } } }
文件6-19 Example19.java
文件6-19的運(yùn)行結(jié)果如圖6-27所示。
在文件6-19中,第6~10行代碼通過Map的put(Object key,Object value)方法向集合中加入4個(gè)元素;第11~17行代碼使用迭代器遍歷集合中的元素并通過元素的鍵獲取對(duì)應(yīng)的值,然后打印。從圖6-27的打印結(jié)果可以看出,添加的元素已經(jīng)自動(dòng)排序,并且鍵值重復(fù)存入的整數(shù)3只有一個(gè),只是后邊添加的值“張三”覆蓋了原來的值“李四”。這也證實(shí)了TreeMap中的鍵必須是唯一的,不能重復(fù)且有序,如果存儲(chǔ)了相同的鍵,后存儲(chǔ)的值會(huì)覆蓋原有的值。