Java中是否有内置方法直接对2D数组进行排序
例如:如果我有一个名字和数组的数组电话号码,我可以根据名字对其进行排序,而每个名字都会使用内置功能保存电话号码吗?
答案 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