Java,Arrays.sort()總結
阿新 • • 發佈:2022-05-10
1.一維陣列排序
int[] intArray = new int[]{1,34,5,-9};
Arrays.sort(intArray);
System.out.println(Arrays.toString(intArray));
2.一維陣列逆序
Java的Arrays.sort()僅支援對引用資料型別進行自定義排序,如果是基本資料型別(如int型別),將無法使用Comparator進行自定義排序。
可以先正序再reverse
int[] nums = new int[]{1,6,4,55,61,3,5,8,4,2,8,15,61,33}; Arrays.sort(nums); for (int i = 0; i < nums.length/2; i++) { int temp = nums[i]; nums[i] = nums[nums.length - 1 - i]; nums[nums.length - 1 - i] = temp; } System.out.println(Arrays.toString(nums));
3.二維陣列排序
public static void main(String[] args) { int[][] intvs = {{1, 6}, {2, 3}, {2,1}}; // 按照第一列升序排列,第一列相同時按照第二列降序排列 Arrays.sort(intvs, (a, b) -> { if (a[0] == b[0]) { return b[1] - a[1]; } return a[0] - b[0]; }); for(int[] intv:intvs){ System.out.println(Arrays.toString(intv)); } } /* 執行結果: [1, 6] [2, 3] [2, 1] */
4.字串陣列排序
String[] strArray = new String[]{"Z", "a", "D","b","N","n"}; //字串排序(先大寫後小寫) Arrays.sort(strArray); System.out.println(Arrays.toString(strArray)); //[D, N, Z, a, b, n] //字串排序(忽略大小寫) Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER); System.out.println(Arrays.toString(strArray));//[a, b, D, N, n, Z]
5.字串按長度排序
String[] strs=new String[10];
Arrays.sort(strs, (String first, String second) ->
{
if(first.length() < second.length()) return -1;
else if(first.length() > second.length()) return 1;
else return 0;
});