我有一个名为“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;
}
}
在第二种方法之后,矩阵将以原始形式返回,而不是以我想要的方式工作(第一种方法工作正常)。 有人可以帮忙吗? :)
答案 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
上运行〜!