Java中HashMap实现1对N

              我们都知道在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

猜你喜欢

转载自blog.csdn.net/z_xindong/article/details/85037171
今日推荐