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



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

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

您的数据结构是[[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

将 2D 数组转换为以下类的 1D 数组,然后使用带有自定义比较器的内置方法进行排序。你也可以使这个类与它本身相当。

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

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

相关内容

  • 没有找到相关文章

最新更新