Arrays.sort を使用した 2D 配列のソート
多次元配列のソートは複雑なタスクになる場合があります。ただし、Java の Arrays.sort メソッドを使用すると、これを効率的に実現できます。
具体的には、この解決策には、Comparator を次のように受け取るオーバーロードされた Arrays#Sort(T[] a, Comparator c) メソッドの使用が含まれます。 2 番目の引数。コンパレーターは、オブジェクトを比較する方法を定義するオブジェクトです。この場合、各サブ配列の最初の要素の値を比較します。
これを実装するには、java.util.Comparator インターフェースを実装し、その Compare() メソッドをオーバーライドするコンパレーターを作成します。このメソッドは、2 つの配列の最初の要素を比較し、出現する順序に応じて -1、0、または 1 を返す必要があります。
たとえば、次の 2D 配列を考えてみましょう:
double[][] myArr = { {1, 5}, {13, 1.55}, {12, 100.6}, {12.1, .85} };
各部分配列の最初の要素の値に基づいてこの配列を昇順に並べ替えるには、次のコマンドを使用します。コード:
java.util.Arrays.sort(myArr, new java.util.Comparator<double[]>() { public int compare(double[] a, double[] b) { return Double.compare(a[0], b[0]); } });
これにより、次のソートされた配列が生成されます:
[ {1, 5}, {12, 100.6}, {12.1, .85}, {13, 1.55} ]
Java 8 以降では、ラムダを使用してコンパレータを簡素化できます:
Arrays.sort(array, Comparator.comparingDouble(o -> o[0]));
以上がArrays.sort を使用して Java で 2D 配列をソートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。