• 要求将字符串中的字符按字符出现的次数从小到大进行排序


    package com.xiawei.sort;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;

    public class TestString {
    //要求将字符串中的字符按字符出现的次数从小到大进行排序
    //思路:1.将字符串转换为以单个字符存在形式的字符数组;
    // 2.for遍历这个字符数组,通过containsKey()方法将每个字符作为map集合中的key存入集合中,同时将每个字符出现的次数作为value值存入集合;
    // 3.遍历存入的时候,需要判断该key(字符)是否存在,如果存在则将该key的value值+1,否在存入该key,并记该key的value值为1次;
    // 4.定义一个List规定其泛型为Map.Entry;
    // 6.通过entrySet()获得每个key-value然后添加到list集合中;
    // 7.重写compare()方法,再通过Collections的sort()方法进行排序;
    // 8.最后遍历list打印即可;
    public static void main(String[] args) {
    String str = "adasfsxsdfadgdfgajxgdafsydfyfgddaxsa";
    // 通过toCharArray()方法获得字符数组
    char[] chr = str.toCharArray();
    //定义一个Map集合
    Map<Character,Integer> map = new HashMap<>();
    //遍历这个字符数组
    for(char cha : chr){
    if(map.containsKey(cha)){
    map.put(cha, map.get(cha)+1);//value值+1
    }else{
    map.put(cha, 1);
    }
    }
    //看一下map集合
    System.out.println(map);

    //定义一个List
    List<Map.Entry<Character,Integer>> list = new ArrayList<>();

    //通过entrySet()获得每个key-value然后添加到list集合中[entrySet():返回此映射中包含的映射关系的 Set视图(key-value)];
    list.addAll(map.entrySet());

    Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
    @Override
    public int compare(Entry<Character, Integer> o1, Entry<Character, Integer> o2) {

    return o1.getValue()-o2.getValue();//从小到大排序
    }
    });

    //遍历list打印
    System.out.println("升序排列:");
    int a=0;
    for(Map.Entry<Character,Integer> listSort : list){
    if(a < list.size()-1){
    System.out.print(listSort.getKey()+", ");
    }else{
    System.out.print(listSort.getKey());
    }

    a++;
    }
    }
    }

  • 相关阅读:
    tryparse的用法,^0*[1-9]d*$
    寻找指定的进程然后杀死的代码写法
    P2421 [NOI2002]荒岛野人
    P2568 GCD
    P1445 [Violet]樱花
    P3119 [USACO15JAN]草鉴定Grass Cownoisseur
    P1314 聪明的质监员
    P3811 【模板】乘法逆元
    P3943 星空
    P3225 [HNOI2012]矿场搭建
  • 原文地址:https://www.cnblogs.com/xiaweicn/p/8666540.html
Copyright © 2020-2023  润新知