偶然看见一道题目:使用Java语言,将数组元素按重复次数升序排序,思考之后想出了两个写法,一个写法是使用内部类实现Comparator接口的compare方法进行排序,一种是定义一个类继承Comparator实现compare方法。
内部类实现Comparator接口的compare的方法进行排序的代码:
package com.test;
import java.util.*;
/**
@author zheng
@date 2019/3/17 9:54
*/
public class Count {
public static int[] arrs(int arr[]) {
Map<Integer, Integer> map = new HashMap<>();
for (Integer inte : arr) {
map.put(inte, map.containsKey(inte) ? map.get(inte) + 1 : 1);
}
List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
// Collections.sort(list,Comparator.comparing(Map.Entry::getValue));//此为jdk1.8实现内部类的新方法,用到了Lamda表达式
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
@Override