我有一个包含 {2,2,1,1,1,5,4,4,4,4,4}
的 ArrayList,我想根据出现的次数对它进行排序每个元素。所以它会给出 {4,4,4,4,4,1,1,1,2,2,5}
。我从哪里开始?
import java.util.*;
public class SortingL{
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<Integer>();
Integer[] al = new Integer[] {2,2,1,1,1,5,4,4,4,4,4};
list.addAll(Arrays.asList(al));
sortL(list);
}
public static ArrayList<Integer> sortL(ArrayList<Integer> list){
return list;
}
}
最佳答案
一种解决方案是使用Collections#frequency
:
List<Integer> list = Arrays.asList(2, 2, 1, 1, 1, 5, 4, 4, 4, 4, 4);
list.sort(Comparator.comparing(i -> Collections.frequency(list, i)).reversed());
System.out.println(list);
这将输出预期的结果:
[4, 4, 4, 4, 4, 1, 1, 1, 2, 2, 5]
关于java - 根据相似元素的出现次数对数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508634/