JavaにおけるArays.sort()配列並び替えの使い方例

14068 ワード

記事の目次
  • .引用
  • .一次元配列におけるArays.sort()
  • .二次元配列におけるArays.sort()
  • .sort()の快速ソースコード
  • 1.引用
    LeetCode-Stort&arry-56 M:マージ区間(Merge Intervals)という古典的なタイプは、2次元配列の順序付けに関連し、直接Arrays.sort()メソッドを呼び出すことは不可能であるので、本明細書では、この方法について説明する。
    2.一次元配列の中のArays.sort()
    (1)まず一般的な場合、1つの普通の1次元配列を昇順に並べた時に、直接呼び出しをすればいいです。
        public static void main(String[] args) {        
            int[] arr1 = new int[]{3,4,1,5,7};
            Arrays.sort(arr1);
        }
    
    (2)しかし、降順に並べたいなら、どうすればいいですか?
        public static void main(String[] args) {
    
            int[] arr1 = new int[]{3,4,1,5,7};
            Arrays.sort(arr1, new Comparator<int>(){
            	@Override
                public int compare(Integer o1, Integer o2) {
                    return o2-o1;
                }
            });
        }
    
    コンパレータを理論的に呼び出して、このように書くべきですが、コンパイルする時にエラーが発生します。一般的には応用タイプが必要で、Comparatorは不可能です。だから、次のように変更します。
        public static void main(String[] args) {
    
            Integer[] arr1 = new Integer[]{3,4,1,5,7};
            Arrays.sort(arr1,new Comparator<Integer>(){
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o2-o1;
                }
            });
        }
    
    配列を参照の種類に変更する必要があります。
    3.二次元配列の中のArays.sort()
    (1)二次元配列もCompratorコンパレータを呼び出す必要があります。次のように、各配列の最初の要素に従って昇順に並べられます。
        public static void main(String[] args) {
    
            int[][] arr2 = new int[][]{{1, 3}, {3, 5}, {2, 7}, {6, 9}};
            Arrays.sort(arr2, new Comparator<int[]>() {
                @Override
                public int compare(int[] o1, int[] o2) {
                    return o1[0] - o2[0];
                }
            });
        }
    
    (2)降順:
           Arrays.sort(arr2, new Comparator<int[]>() {
               @Override
               public int compare(int[] o1, int[] o2) {
                   return o2[0] - o1[0];
               }
           });
    
    (3)不変
           Arrays.sort(arr2, new Comparator<int[]>() {
               @Override
               public int compare(int[] o1, int[] o2) {
                   return 0;
               }
           });
    
    4.sort()の快速ソース
    wait-研究は引き続き