[Java]Map统计城市数量

Map统计城市数量

输入用户名-所去城市,统计去的人最多的城市,并按去的城市数量进行排序,若数量相同那么根据城市名的字典序排序
输入:

34839946-beijing 34839946-shanghai 42342124-hongkong 42342124-guilin 42342124-guilin 12312344-shanghai 12312344-shanghai 22341234-nanjing

输出:

shanghai 2
beijing 1
guilin 1
hongkong 1
nanjing 1

代码:

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();

        /* 去重 */
        Set<String> set = new HashSet<>();
        String input[] = str.split(" ");
        for (int i = 0; i < input.length; i++) {
            set.add(input[i]);
        }

        /* 分析去重后的结果 存在allCity中以后使用*/
        List<String> li = new ArrayList<>(set);
        List<String> allCity = new ArrayList<>();
        for (int i = 0; i < li.size(); i++) {
            String temp[] = li.get(i).split("-");
            allCity.add(temp[1]);
        }

        /* 统计allCity的出现次数,存在result中*/
        Map<String, Integer> result = new TreeMap<>();
        for (String s:allCity) {
            if(result.containsKey(s)){
                Integer rrr = result.get(s)+1;
                result.put(s,result.get(s)+1);
            }else{
                result.put(s,1);
            }
        }

        /* 对result进行排序 */
        List<Map.Entry<String,Integer>> tempResult = new ArrayList<>(result.entrySet());
        tempResult.sort(new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                if(o1.getValue() != o2.getValue()){
                    return o2.getValue().compareTo(o1.getValue());
                }else{
                    return o1.getKey().compareTo(o2.getKey());
                }
            }
        });

        //System.out.println(tempResult);
        /* 输出result */
        for (Map.Entry<String ,Integer> r:tempResult) {
            System.out.println(r.getKey() + " " + r.getValue());
        }
    }
}
发布了84 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_36254699/article/details/101238931
今日推荐