之前我們看過了兩種類型的集合,ArrayList集合和LinkedList集合,兩種集合各有優(yōu)勢,我們不具體說了,但是本篇要看的集合可以完成它們完成不了的任務(wù)。比如:現(xiàn)有一篇文章,要你統(tǒng)計其中出現(xiàn)了哪些單詞,每個單詞總共出現(xiàn)了幾次。這個問題很明顯需要記錄兩個變量(某單詞及其出現(xiàn)次數(shù)),但是我們之前介紹的集合都只能同時存儲一種類型的變量,無法實現(xiàn)對應(yīng)的效果。
我們的HashMap又可以叫做鍵值對集合(官方名稱映射),比如:
public class Test_Class { public static void main(String[] args){
HashMap<String,Integer> map = new HashMap<String, Integer>(); map.put("hello",10);
}
}/*第一條記錄,保存了hello這個單詞在文章中總共出現(xiàn)10次*/
一、超接口Map
想要研究一個具體的類,先要看看它的父類或者父接口。HashMap實現(xiàn)了Map<K,V>接口,K表示鍵,V表示值,一個鍵對應(yīng)一個值,整個集合中鍵是唯一的不可重復(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();
...... //源碼中方法很多,我們簡單介紹幾個常用的}