package day15;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* 统计一个字符串中每个字符的数量
*/
public class CountCharDemo {
public static void main(String[] args) {
Map<Character,Integer> map = count("abafwfsdewaawe");
//一条一条的集合,Map的迭代1
Set<Map.Entry<Character, Integer>> set =(Set)map.entrySet();
Iterator it = set.iterator();
//可以自己添加简易的表格
System.out.println("+------+-----+");
System.out.println("| 字符 | 数量 |");
System.out.println("+------+-----+");
while(it.hasNext()){
Map.Entry<Character, Integer> entry = (Map.Entry<Character, Integer>)it.next();
System.out.print("| "+entry.getKey()+" |");
System.out.println(" "+entry.getValue()+" |");
}
System.out.println("+------+-----+");
//Map的迭代2,是迭代key,然后通过get(),获得value
Set<Character> keys = map.keySet();
Iterator itt = keys.iterator();
while(itt.hasNext()){
char c = (Character)itt.next();
int val = map.get(c);
System.out.print("字符"+c);
System.out.println("数:"+val);
}
}
//统计方法
public static Map<Character,Integer> count(String str){
Map<Character, Integer> map =
new HashMap<Character,Integer>();
for(int i=0;i<str.length();i++){
char c =str.charAt(i);
//检查c是否被统计过
if(map.containsKey(c)){
int val = map.get(c)+1;//取出原来统计结果,并加1,有个自动拆包
map.put(c, val);//将新结果送回map
}else{//没有被统计过,就为map增加新纪录:"c:1"
map.put(c, 1);//自动包装
}
}
return map;
}
}
java中Map的经典案例
最新推荐文章于 2023-12-19 23:31:33 发布