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