下面分 int[] 数组 和 List 集合 两种情况来讲,覆盖你在 Java 里最常见、也最“正统”的做法,并顺带点出一些底层和易踩坑点。
int[] arr = {5, 2, 9, 1, 3};
Arrays.sort(arr);
int[] 不能直接传 Comparator,必须转换成包装类型:
int[] arr = {5, 2, 9, 1, 3};
Integer[] boxed = Arrays.stream(arr)
.boxed()
.toArray(Integer[]::new);
Arrays.sort(boxed, Collections.reverseOrder());
// 如需再转回 int[]
int[] result = Arrays.stream(boxed)
.mapToInt(Integer::intValue)
.toArray();
⚠️ 原因:Comparator 只能用于对象,int 是基本类型。