之前我們看過(guò)了兩種類型的集合,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ǔ)一種類型的變量,無(wú)法實(shí)現(xiàn)對(duì)應(yīng)的效果。
     我們的HashMap又可以叫做鍵值對(duì)集合(官方名稱映射),比如:

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è)具體的類,先要看看它的父類或者父接口。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è)常用的}

網(wǎng)友評(píng)論