Javaの複数の列の値に従って配列を並べ替える

Fco.Jav.Y

特定の列を超える値に従って配列をソートするためのメソッドをJavaで構築したいと思います。例(行列配列)でそれを説明しましょう:

int matrix[][] = {{0,2,432},{1,1,282},{2,2,456},{3,4,191},{4,5,293},{5,2,475},{6,2,491},{7,5,171},{8,5,134},{9,3,354}};

すべてのトリプレットを2番目の位置に従って降順で並べ替える必要があります。その後、3番目の位置に従ってトリプレットを昇順で並べ替える必要があります。

そのために使用しているコードは次のとおりです。

import java.util.*; 

public class sort2DMatrixbycolumn { 

    // Function to sort by column 
    public static void sortbyColumn(int arr[][], int col) 
    { 
        // Using built-in sort function Arrays.sort 
        Arrays.sort(arr, new Comparator<int[]>() { 

        @Override           
        // Compare values according to columns 
        public int compare(final int[] entry1, 
                            final int[] entry2) { 

            if (entry1[col] < entry2[col]) 
                return 1; 
            else
                return -1; 
        } 
        }); // End of function call sort(). 
    } 

    // Driver Code 
    public static void main(String args[]) 
    { 
        int matrix[][] = {{0,2,432},{1,1,282},{2,2,456},{3,4,191},{4,5,293},{5,2,475},{6,2,491},{7,5,171},{8,5,134},{9,3,354}};

        // Sort this matrix by 2rd Column 
        int col = 2; 
        sortbyColumn(matrix, col - 1); 

        // Display the sorted Matrix 
        for (int i = 0; i < matrix.length; i++) { 
            for (int j = 0; j < matrix[i].length; j++) 
                System.out.print(matrix[i][j] + " "); 
            System.out.println(); 
        } 
    } 
} 

前述のコードの出力は次のとおりです。

[[8,5,134],[7,5,171],[4,5,293],[3,4,191],[9,3,354],[6,2,491],[5,2,475],[2,2,456],[0,2,432],[1,1,282]]

ただし、必要な出力は次のとおりです。

[[8,5,134],[7,5,171],[4,5,293],[3,4,191],[9,3,354],[0,2,432],[2,2,456],[5,2,475],[6,2,491],[1,1,282]]

2番目の位置によると次のようになります:5,5,5,4,3,2,2,2,2,1(降順)そして3番目の位置によると次のようになります:134,171,293( 2番目の位置に「5」があるトリプレット)、191(2番目の位置に「4」があるトリプレットの場合)、354(2番目の位置に「3」があるトリプレットの場合)、432,456,475,491(2番目の位置にあるトリプレットの場合) 2番目の位置に「2」)、最後に2番目の位置に「1」があるトリプレットの場合は282。

どんな助けでも大歓迎です。ありがとう。

alainlompo

colパラメーターは実際にはパラメーターではないため、sortByColumnメソッドから削除し、次のようにメソッドを変更します。

// Function to sort by column 
public static void sortbyColumn(int arr[][]) 
{ 
    // Using built-in sort function Arrays.sort 
    Arrays.sort(arr, new Comparator<int[]>() { 

    @Override           
    // Compare values according to columns 
    public int compare(final int[] entry1, final int[] entry2) { 
            if (entry1[1] < entry2[1]) 
                return 1; 
            else if (entry1[1] > entry2[1])
                return -1; 

            return -1 * Integer.valueOf(entry2[2]).compareTo(Integer.valueOf(entry1[2]));
     } 
   }); // End of function call sort(). 
}

もちろん、メインの通話をに変更します sortbyColumn(matrix);

少し説明:

2番目の列が等しい場合にのみ3番目の列で比較する必要があります(つまり、最初の比較の数値結果は0に等しくなります)。その場合、逆の順序で比較します。これは、比較結果に-1を掛けることで得られます。

結果:

8 5 134 
7 5 171 
4 5 293 
3 4 191 
9 3 354 
0 2 432 
2 2 456 
5 2 475 
6 2 491 
1 1 282 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

子配列の数に従って配列の配列を並べ替える

分類Dev

最初の配列に従って配列を並べ替える

分類Dev

PHPの値に従って配列を並べ替えます

分類Dev

日付に従ってSQLServerの複数の列を並べ替える方法

分類Dev

javascriptの複数のルールに従ってオブジェクトの配列を並べ替える

分類Dev

別の配列の値に従って配列の値を並べ替える方法

分類Dev

javascriptの別の配列に従って配列を並べ替える方法は?

分類Dev

複雑なファイル名の文字列の日付に従って配列を並べ替える

分類Dev

列の個別の値に従って RDD を並べ替える

分類Dev

複数の正規表現の部分文字列に従って変数を並べ替える

分類Dev

値に従って連想配列を並べ替える

分類Dev

値のカスタム並べ替えを定義し、その並べ替えに従って配列から最大値と最小値を取得する-PHP

分類Dev

複数の値に基づいて配列を並べ替える

分類Dev

複数の値に基づいて配列を並べ替える

分類Dev

最初の文字に従って文字列を並べ替えるmatlab

分類Dev

PHP:値のリストに従って多次元配列を並べ替える

分類Dev

別の配列に基づいて複数の配列を並べ替える並べ替え順序

分類Dev

Java文字列配列を複数の数値で並べ替える

分類Dev

Java文字列配列を複数の数値で並べ替える

分類Dev

一度に複数の列に従ってテーブルを並べ替える方法は?

分類Dev

複数のキー値による配列の並べ替え

分類Dev

Bashの文字列のリストを、特定の部分文字列に従って数値で並べ替えます

分類Dev

配列を複数の配列に分割して並べ替える

分類Dev

ID配列に基づいて複数の配列を並べ替える

分類Dev

Java:数値文字列の配列を並べ替える

分類Dev

特定の列のPythonデータフレームに従って特定の列の値を並べ替える

分類Dev

参照配列に従って配列を並べ替える

分類Dev

Rの特定の列値に従って列のブロックを並べ替える

分類Dev

メイン配列内の長さに従って配列を並べ替える方法

Related 関連記事

  1. 1

    子配列の数に従って配列の配列を並べ替える

  2. 2

    最初の配列に従って配列を並べ替える

  3. 3

    PHPの値に従って配列を並べ替えます

  4. 4

    日付に従ってSQLServerの複数の列を並べ替える方法

  5. 5

    javascriptの複数のルールに従ってオブジェクトの配列を並べ替える

  6. 6

    別の配列の値に従って配列の値を並べ替える方法

  7. 7

    javascriptの別の配列に従って配列を並べ替える方法は?

  8. 8

    複雑なファイル名の文字列の日付に従って配列を並べ替える

  9. 9

    列の個別の値に従って RDD を並べ替える

  10. 10

    複数の正規表現の部分文字列に従って変数を並べ替える

  11. 11

    値に従って連想配列を並べ替える

  12. 12

    値のカスタム並べ替えを定義し、その並べ替えに従って配列から最大値と最小値を取得する-PHP

  13. 13

    複数の値に基づいて配列を並べ替える

  14. 14

    複数の値に基づいて配列を並べ替える

  15. 15

    最初の文字に従って文字列を並べ替えるmatlab

  16. 16

    PHP:値のリストに従って多次元配列を並べ替える

  17. 17

    別の配列に基づいて複数の配列を並べ替える並べ替え順序

  18. 18

    Java文字列配列を複数の数値で並べ替える

  19. 19

    Java文字列配列を複数の数値で並べ替える

  20. 20

    一度に複数の列に従ってテーブルを並べ替える方法は?

  21. 21

    複数のキー値による配列の並べ替え

  22. 22

    Bashの文字列のリストを、特定の部分文字列に従って数値で並べ替えます

  23. 23

    配列を複数の配列に分割して並べ替える

  24. 24

    ID配列に基づいて複数の配列を並べ替える

  25. 25

    Java:数値文字列の配列を並べ替える

  26. 26

    特定の列のPythonデータフレームに従って特定の列の値を並べ替える

  27. 27

    参照配列に従って配列を並べ替える

  28. 28

    Rの特定の列値に従って列のブロックを並べ替える

  29. 29

    メイン配列内の長さに従って配列を並べ替える方法

ホットタグ

アーカイブ