201503-2 数字排序 Java

Posted 鱼の家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了201503-2 数字排序 Java相关的知识,希望对你有一定的参考价值。

思路:
将出现过的数以及次数放进Map中,转成List,用Comparator就可以排序了。参数中o2-o1,与排序规则相反,为降序

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

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		Map<Integer,Integer> map = new HashMap<Integer,Integer>();
		for(int i=0;i<n;i++) {
			int temp = sc.nextInt();
			if(map.containsKey(temp)) {
				map.replace(temp,map.get(temp)+1);
			}else {
				map.put(temp, 1);
			}
		}
		//需要按照map的value排序。先转成List,再sort
		List<Map.Entry<Integer, Integer>> list= new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
		list.sort(new Comparator<Map.Entry<Integer, Integer>>() {
			public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
				return o2.getValue().compareTo(o1.getValue());
			}
		});
		for (Map.Entry<Integer, Integer> entry : list) {
			System.out.println(entry.getKey()+" "+entry.getValue());
		}
	}
}

以上是关于201503-2 数字排序 Java的主要内容,如果未能解决你的问题,请参考以下文章

CCF 201503-2 数字排序

CCF 201503-2 数字排序

[Python]CCF——数字排序(201503-2)

CCF_201503-2_数字排序

CCF201503-2数字排序

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段