面经编程题1
对字符串统计字母出现个数,并以字符大小排序,然后以字符+出现次数输出,如[asda],输出[a2d1s1],
import com.sun.jdi.IntegerValue;
import java.util.*;
public class test1 {
//输入:String s
//输出: 字母+出现次数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
Map m = charTime(s);
show(m);
}
public static Map charTime(String s){
Map<Character,Integer> map = new HashMap<>();
for(char a: s.toCharArray()){
if(map.containsKey(a)){
int cnt = map.get(a);
cnt++;
map.put(a,cnt);
}else{
map.put(a,1);
}
}
return map;
}
public static void show(Map map){
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry) it.next();
Character key = (Character)entry.getKey();
Integer val = (Integer)entry.getValue();
System.out.print(key.toString()+val+" ");
}
}
}
HashMap取出:
Map<Character,Integer> map = new HashMap<Character,Integer>();
map.put('a',1);
map.put('a',5);
//通过迭代器对象取出map中保存的所有实体
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry) it.next();
Character key = (Character)entry.getKey();
Integer value = (Integer)entry.getValue();
System.out.println(key.toString()+value);
结果:a5
HashMap不能存储重复的键(即每个键只能唯一映射一个值)。当重复添加key相同,value不同的数据时,HashMap中这个key映射的value(最新值)。
注:如有侵权,联系马上删。看过的网站有点多,以上均是自己消化后所总结。