Java中TreeMap具体实现Demo

这里写图片描述
代码实现:

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);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值