之前我們看過(guò)了兩種類(lèi)型的集合,ArrayList集合和LinkedList集合,兩種集合各有優(yōu)勢(shì),我們不具體說(shuō)了,但是本篇要看的集合可以完成它們完成不了的任務(wù)。比如:現(xiàn)有一篇文章,要你統(tǒng)計(jì)其中出現(xiàn)了哪些單詞,每個(gè)單詞總共出現(xiàn)了幾次。這個(gè)問(wèn)題很明顯需要記錄兩個(gè)變量(某單詞及其出現(xiàn)次數(shù)),但是我們之前介紹的集合都只能同時(shí)存儲(chǔ)一種類(lèi)型的變量,無(wú)法實(shí)現(xiàn)對(duì)應(yīng)的效果。
我們的HashMap又可以叫做鍵值對(duì)集合(官方名稱(chēng)映射),比如:
public class Test_Class { public static void main(String[] args){
HashMap<String,Integer> map = new HashMap<String, Integer>(); map.put("hello",10);
}
}/*第一條記錄,保存了hello這個(gè)單詞在文章中總共出現(xiàn)10次*/
一、超接口Map
想要研究一個(gè)具體的類(lèi),先要看看它的父類(lèi)或者父接口。HashMap實(shí)現(xiàn)了Map<K,V>接口,K表示鍵,V表示值,一個(gè)鍵對(duì)應(yīng)一個(gè)值,整個(gè)集合中鍵是唯一的不可重復(fù)。
public interface Map<K,V> { int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(Object key); V put(K key, V value); V remove(Object key); void putAll(Map<? extends K, ? extends V> m); void clear(); Set<K> keySet(); Collection<V> values();
Set<Map.Entry<K, V>> entrySet();
...... //源碼中方法很多,我們簡(jiǎn)單介紹幾個(gè)常用的}
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26