0

2 番目の列に関して String[][] を並べ替えたいと思います。私はこれを試しました

public static String[][] sorting_minn(String[][] list){ 
    double[] temp = new double[list.length];
    String[][] tempf = list;

    if(list[1][1]!=null){
    for(int i = 0; i<list.length; i++){
        if(list[i][2]==null){
            break;

        } else {
            temp[i]=Double.parseDouble(list[i][2]);


        }

    }

Arrays.sort(temp);

for(int f = 0; f<list.length-1;f++){
    for(int m = 0; m<list.length;m++){
        if(list[m][2]!=null && Double.parseDouble(list[m][2])==temp[f]){
             for(int n = 0; n<4; n++){
                 tempf[list.length-f-1][n]=list[m][n];

             }
        m = list.length;
            }
        }

    }
}
return tempf;

}

出力として、次のようになります出力。このコードを改善する方法について提案が必要です。

4

1 に答える 1

2

次のようなものを試してください:

        Arrays.sort(list, new Comparator<String[]>() {
            @Override
            public int compare(String[] o1, String[] o2) {
                String left = o1[1]!=null ? o1[1] : "";
                String right = o2[1]!=null ? o2[1] : "";
                return left.compareTo(right);
            }
        });

これは null を空の文字列として扱い、文字列は辞書式ですが比較可能であるという事実を利用します。逆の順序が必要な場合は、代わりに次のようにします。

right.compareTo(left)

整数の順序付けが必要な場合は、両側から整数を解析し (null の場合は Integer.MIN)、2 つの整数を比較できます。

于 2012-12-31T14:10:46.163 に答える