小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SortedMap接口的實(shí)現(xiàn)類TreeMap介紹和實(shí)現(xiàn)Comparator自定義比較器 | IT宅.com

 jp乞巧樓 2015-07-30

與SortedSet接口類似,SortedMap也是一個(gè)結(jié)構(gòu),待排序的Map,其一個(gè)比較常用的實(shí)現(xiàn)類是TreeMap。

TreeMap的put(K key, V value)方法在每添加一個(gè)元素時(shí),都會(huì)自動(dòng)排序。

構(gòu)造方法:
TreeMap()
使用鍵的自然順序構(gòu)造一個(gè)新的、空的樹(shù)映射。
TreeMap(Comparator<? super K> comparator)
構(gòu)造一個(gè)新的、空的樹(shù)映射,該映射根據(jù)給定比較器進(jìn)行排序。
TreeMap(Map<? extends K,? extends V> m)
構(gòu)造一個(gè)與給定映射具有相同映射關(guān)系的新的樹(shù)映射,該映射根據(jù)其鍵的自然順序 進(jìn)行排序。
創(chuàng)建自定義的Comparator比較器:
//這里根據(jù)字符的ASCII碼大小進(jìn)行降序排序:
class MyComparator2 implements Comparator<String>{
	@Override
	public int compare(String o1, String o2) {

		return o2.compareTo(o1);
	}
}
在SortedSet中,當(dāng)保存對(duì)象時(shí)一定要自定義一個(gè)比較器Comparator,但是在SortedMap中,保存對(duì)象卻不一定要,因?yàn)镾ortedMap是比較Key而不是Value,所以創(chuàng)建的自定義比較器也是針對(duì)Key的,比如上面創(chuàng)建的Comparator是針對(duì)Key類型為String的Map進(jìn)行排序。
Map<String, String> map = new TreeMap<String, String>(new MyComparator2());

對(duì)于TreeMap的迭代和HashMap一樣,同樣有三種方法,以下是常用的其中一種:

Set<Map.Entry<Integer, Integer>> set = map.entrySet();
for(Iterator<Map.Entry<Integer, Integer>> iter = set.iterator(); iter.hasNext();){
	Map.Entry<Integer, Integer> entry = iter.next();
	Integer key = entry.getKey();
	Integer value = entry.getValue();
	System.out.println(key + ":" + value);
}

對(duì)于Map來(lái)說(shuō),不能使用Collections的靜態(tài)方法,但是可以通過(guò)他的values方法獲取到Collections進(jìn)行調(diào)用:

Collection<Integer> cols = map.values();
Integer max = Collections.max(cols);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多