0

Java中是否有直接对二维数组进行排序的内置方法

例如:如果我有一个名字和电话号码的数组,我可以根据名字对其进行排序,而每个名字都会使用内置函数保留它的电话号码吗?

4

2 回答 2

2

将您的二维数组转换为以下类的一维数组,然后使用带有自定义比较器的内置方法进行排序。您还可以使此类与自身具有可比性

class Person{
    public String name;
    public String phNumber;
}

或者TreeMap,正如 sansix 所建议的那样,使用键作为名称,值作为 phNumber。不再需要比较器,并且数据将始终被排序。

于 2013-02-02T06:46:47.343 回答
2

是你的数据结构[[name1, name2, ...], [phone1, phone2,...]]还是[[name1, phone1], ...]?如果是后者,您可以使用比较器

class NameAndPhoneComparator implements Comparator<String[]> {
    public int compare(String[] o1, String[] o2) {
        int c = o1[0].compareTo(o2[0]);
        if (c != 0) return c;
        return o1[1].compareTo(o2[1]);
    }
}

然后使用Arrays.sort

于 2013-02-02T06:55:47.897 回答