zoukankan      html  css  js  c++  java
  • 要求将字符串中的字符按字符出现的次数从小到大进行排序

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

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/xiaweicn/p/8666540.html
Copyright © 2011-2022 走看看