在我们的印象中,Map k,v 映射,一对一的比较多,下面主要讲一对多的关系映射,主要需求在于,需要把很多的,杂乱的数据 按照不同的类型进行分类处理,A,B,C类型的数据进行分类统计
比如,计算字母/单词出现的次数
String str = "t/h/is/is/a/car/a/n/d/t/ha/t/is/tr/uck/a/nd/w/h/e/r/e/is/t/he/s/t/uffs";
String [] str =
"t/h/is/is/a/car/a/n/d/t/ha/t/is/tr/uck/a/nd/w/h/e/r/e/is/t/he/s/t/uffs".split("/");
Map<String,Integer> map
= new HashMap<String,Integer>();
for(String key:str){
//方法1
//检查map里面是否存在这个单词,如果不存在 说明之出现一次
// if(!map.containsKey(key)){
// map.put(key, 1);
// }else{
// map.put(key, map.get(key)+1);//存在 就在前面的基础上面+1 计算出现的次数
// }
//方法2
Integer value = map.get(key);
if(value == null){
map.put(key, 1);
}else{
map.put(key, value+1);
}
}
Set<String> keySet = map.keySet();
Iterator<String>it = keySet.iterator();
while(it.hasNext()){
String key = it.next();
Integer value = map.get(key);
System.out.println(key+"-->"+value);
}
}
当然,这里的value也可以是对象,对于不同的场景 进行灵活的应用。