代码实现:
package day18_TreeMap;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
/*
* 需求:“aabbbcabcdabcde”,获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
*
* 分析:
* A:定义一个字符串(可以改进为键盘录入)
* B:定义一个TreeMap集合
* 键:Character
* 值:Integer
* C:把字符串转换为字符数组
* D:遍历字符数组,得到每一个字符
* E:拿刚才得到的字符作为键到集合中去找,看返回值
* Null:说明该键不存在,就把该字符作为键,1作为值存储
* 不是Null:说明该键存在,就把值加1,然后重写存储该键和值
* F:定义字符串缓冲区变量
* G:遍历集合,得到键和值,进行按照要求拼接
* H:把字符串缓冲区转换为字符串输出
*
* */
public class TreeMapTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义一个字符串(可以改进为键盘录入)
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String line=sc.nextLine();
//定义一个TreeMap集合
TreeMap<Character, Integer> tm = new TreeMap<Character,Integer>();
//把字符串转换为字符数组
char [] chs=line.toCharArray();
//遍历字符数组,得到每一个字符
for(char key:chs){
//拿刚才得到的字符作为键到集合中去找,看返回值
Integer i=tm.get(key);
//判断
if(i==null){
//Null:说明该键不存在,就把该字符作为键,1作为值存储
tm.put(key, 1);
}else{
//不是Null:说明该键存在,就把值加1,然后重写存储该键和值
i++;
tm.put(key, i);
}
}
//定义字符串缓冲区变量
StringBuilder sb = new StringBuilder();
//遍历集合,得到键和值,进行按照要求拼接
Set<Character> set = tm.keySet();
for(Character key:set){
Integer value=tm.get(key);
sb.append(key).append("(").append(value).append(")");
}
//把字符串缓冲区转换为字符串输出
String result=sb.toString();
System.out.println("result:"+result);
}
}
以上就是动力节点java培训机构的小编针对“Java编程分享,treemap实现具体实现Demo”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习