📅  最后修改于: 2023-12-03 15:37:48.440000             🧑  作者: Mango
本文将介绍如何使用 Java 对二维数组进行排序,排序的依据是数组中的一列数据。排序的过程中,我们将使用 Java 自带的 Arrays
类和 Comparator
接口。
我们假设有一个二维数组 arr
,其中每行有三个元素,分别为字符串、整数和浮点数。我们需要按照整数列对数组进行排序。
以下是数组 arr
的示例数据:
String[][] arr = {
{"Alice", "20", "3.5"},
{"Bob", "18", "3.2"},
{"Charlie", "22", "3.8"},
{"David", "21", "3.7"},
{"Eva", "19", "3.6"}
};
首先,我们需要根据整数列编写一个 Comparator
接口的实现类,用于比较两行数据的大小。
import java.util.Comparator;
public class IntColumnComparator implements Comparator<String[]> {
private final int column;
public IntColumnComparator(int column) {
this.column = column;
}
@Override
public int compare(String[] o1, String[] o2) {
int num1 = Integer.parseInt(o1[column]);
int num2 = Integer.parseInt(o2[column]);
return Integer.compare(num1, num2);
}
}
在上述代码中,IntColumnComparator
的构造函数接受一个整数参数 column
,表示要比较的列。compare
方法则接受两个字符串数组 o1
和 o2
,并将它们的整数列取出进行比较。
接下来,我们可以使用 Arrays
类的 sort
方法对数组进行排序。需要注意的是,由于我们要按照整数列进行排序,因此需要将这一列数据的字符串类型转换为整数类型,才能正确完成排序。
int columnToSort = 1; // 假设要按第二列整数进行排序
Arrays.sort(arr, new IntColumnComparator(columnToSort));
在上述代码中,我们创建了 IntColumnComparator
的一个实例,作为 Arrays.sort
方法的第二个参数,以此告诉 Java 在排序时使用对应的比较器。
排序完成后,数组 arr
中的行将按照整数列进行升序排列。
本文介绍了如何使用 Java 对二维数组进行排序,重点是如何使用 Arrays
类和 Comparator
接口进行排序。在实际开发中,我们可能需要根据不同的列进行排序,因此需要编写不同的比较器类。