我有一个 ArrayList,其中包含{2,2,1,1,1,5,4,4,4,4,4}并且我想根据每个元素出现的次数对其进行排序。所以它会给{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;
}
}
Run Code Online (Sandbox Code Playgroud)
一种解决方案是使用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);
Run Code Online (Sandbox Code Playgroud)
这将输出预期的结果:
[4, 4, 4, 4, 4, 1, 1, 1, 2, 2, 5]
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |