Java中HashMap實現1對N
阿新 • • 發佈:2018-12-16
我們都知道在Java中的HashMap預設的是1對1,但其實可以處理一下讓他適合1對來儲存資料,其實也就是對鍵值對中得值的資料進行及時的更新.我們實現這一操作作用到了分揀儲存;
那麼什麼是分揀儲存呢?你可以這樣理解,和快遞員分撿快遞來類比,快遞的目的地有很多,比如有北京上海山東等等,比如一開始我拿到了一個發往山東的包裹,那麼快遞員就要看看是否已經有一個放發往山東的袋子,如果有就直接放入,如果沒有就拿一個袋子來。 分揀儲存也就這點東西。
那麼來看一個列子,給你一句英文,讓你統計這句話中每個單詞出現的次數:
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * HahMap :1:N * @author SKH&L * */ public class Main { public static void main(String[] args){ String str="skh is very very cute and cute"; String []s=str.split(" "); Map<String,Integer> map=new HashMap<String,Integer>(); for(String q:s) { if(!map.containsKey(q)) {//如果不存在就建立一個袋子; map.put(q, 1); } else {//如果已存在就加入,並更新相應的V; map.put(q, map.get(q)+1); } } //迭代器遍歷 Set<String>set=map.keySet(); //獲取物件 Iterator<String> it=set.iterator(); while(it.hasNext()) { String key=it.next(); System.out.println(key+"-->"+map.get(key)); } } }
輸出結果:
skh-->1
very-->2
and-->1
is-->1
cute-->2