原文链接:https://blog.csdn.net/qq_30347475/article/details/123070851
原文链接:https://blog.csdn.net/winddreams/article/details/51577500
1.Arrays.sort()中只有数组参数
int[] array = {5, 6, -1, 4};
Arrays.sort(array);
这种是默认的排序,按照字典序(ASCII)的顺序进行排序(升序)。
2.
Arrays.sort()中数组参数和排序方法
使用提供的方法
(1)String[] str = {“abc”, “aaa”, “abc”};
Arrays.sort(str, String.CASE_INSENSITIVE_ORDER);
String中定义的忽略大小写,完全通过字母的顺序进行排序
(2)Arrays.sort(str, Collections.reverseOrder());
反向排序
(3)自定义函数排序
我们可以直接将两个比较的字符串通过两种方式相加,分别比较相加后的字符串字典序大小就可以了啊
Arrays.sort(strings, (o1, o2) -> {
String o1o2 = o1 + o2;
String o2o1 = o2 + o1;
//o1o2小说明o1排在前面字典序小,那么选o1在前面
//o2o1小说明o2排在前面字典序小,那么就选o2在前面
//反之一样大
return o1o2.compareTo(o2o1);
});
理解:因为Arrays.sort()是对数组里的元素按照升序进行排列,所以若自定义函数返回大于零的数,则返回数组时o1在o2后面