在Java中对2D字符串数组进行排序

时间:2014-01-19 00:46:27

标签: java arrays sorting

我在java中使用Arrays.Sort()函数来对存储名称和相应数字的2D数组中的名称进行排序。我希望数字保留在与相应名称相同的索引中。我该怎么做?

提前致谢。

CODE

String[][] contact = new String[3][3];
contact[0][0] = "b";
contact[0][1] = "c";
contact[0][2] = "a";
contact[1][0] = "2";
contact[1][1] = "3";
contact[1][2] = "1";
Arrays.sort(contact[0]);

示例:

b c a

2 3 1

输出:

a b c

2 3 1

我想得到:

a b c

1 2 3

2 个答案:

答案 0 :(得分:2)

在对数组进行排序之前,先复制它,然后在排序后循环排序并使用originalArray.indexOf(newArray[i])获取字符串的原始索引,然后将新的“索引数组”[i]设置为原始索引数组的值[字符串的原始索引]。

在使用Arrays.asList(originalArray)执行此操作之前,您需要将原始数组转换为列表。

答案 1 :(得分:0)

public class MatrixCell{

 private Integer x = 0;
 private Integer y = 0;
 private String name = "";

 public MatrixCell(int x, int y, String name){
   this.x = x;
   this.y = y;
   this.name = name;
 }

 //getters and setters
}

然后创建一个MatrixCell数组并完成。虽然这种方式你也必须制作排序算法。