Java:String对象矩阵

时间:2016-08-30 07:37:22

标签: java string sorting matrix

我有一个名为“Worker”的对象矩阵,在每个“Worker”中都有一个名为“fullname”的String类型变量(名称没有空格,例如:SarahSmith)。 我需要按名称按字母顺序降序命令矩阵的每一列。 现在,我使用此方法按字母顺序

对每列进行排序
    public static void secondChange(Worker[][] mat) {
    for (int m = 0; m < mat[0].length; m++) {
        for (int i = 0; i < mat[0].length; i++) {
            int minindex = i;
            for (int j = i + 1; j < mat[0].length; j++) {
                if (mat[j][m].getName().compareTo(mat[minindex][m].getName()) < 0)
                    minindex = j;   
            }
            Worker temp = mat[i][m];
            mat[i][m] = mat[minindex][m];
            mat[minindex][m] = temp;
        }
    }
}

然后我使用此方法对每列降序

进行排序
    public static void rightOrder(Worker[][] mat){
    for (int m=0 ; m<mat[0].length ; m++)
    for (int i=0, j=(mat[0].length-1) ; i<(mat[0].length/2) || j>(mat[0].length/2) ; i++,j--){
        Worker temp = mat[i][m];
        mat[i][m] = mat[j][m];
        mat[j][m] = temp;
    }
}

在第二种方法之后,矩阵将以原始形式返回,而不是以我想要的方式工作(第一种方法工作正常)。 有人可以帮忙吗? :)

2 个答案:

答案 0 :(得分:0)

这不直接回答您的问题,但是通过为每列创建<table> <tr> <td valign="top" align="center" style=" padding-left: 30px; padding: 10px; border-left: thin gray solid;"> <p style="width:15px; height:15px; margin-left:-18px; margin-top:10px; background:red; border-radius:15px; float:left; "></p> <p style="padding-left: 50px; text-align: left; font-weight: 600;"> <span style="color: #ee163a; font-size: 12px;">08:30 am - 09:30 am</span><br> <span style="color: black; font-size: 10px;">Tea, Registration and Networking </span> </p> </td> </tr> </table>包装器,您可以使用Java的标准和更有效的排序方式:

List

答案 1 :(得分:0)

调试一段时间后我得到了答案......

关于第二种方法,我需要在mat.length -1而非mat[0].length-1上运行〜!