是否有内置方法直接对2D数组进行排序?

时间:2013-02-02 06:42:39

标签: java arrays multidimensional-array sorting built-in

Java中是否有内置方法直接对2D数组进行排序

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

2 个答案:

答案 0 :(得分:2)

将您的2d数组转换为以下类的1D数组,然后使用内置方法和自定义Comparator进行排序。您也可以将此课程Comparable设为自己。

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

或者使用TreeMap,如sansix建议的那样,使用密钥作为名称和值作为phNumber。不再需要比较器,数据将始终排序。

答案 1 :(得分:2)

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

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