使用 Arrays.sort 对 2D 数组进行排序
对多维数组进行排序可能是一项复杂的任务。然而,使用 Java 的 Arrays.sort 方法,可以有效地实现这一点。
具体来说,解决方案涉及使用重载的 Arrays#Sort(T[] a, Comparator c) 方法,该方法将 Comparator 作为它的第二个论点。比较器是一个定义如何比较对象的对象。在本例中,我们要比较每个子数组中第一个元素的值。
要实现此目的,请创建一个实现 java.util.Comparator 接口并重写其compare() 方法的比较器。此方法应比较两个数组的第一个元素,并根据它们出现的顺序返回 -1、0 或 1。
例如,考虑以下 2D 数组:
double[][] myArr = { {1, 5}, {13, 1.55}, {12, 100.6}, {12.1, .85} };
要根据每个子数组中第一个元素的值按升序对该数组进行排序,请使用以下代码:
java.util.Arrays.sort(myArr, new java.util.Comparator<double[]>() { public int compare(double[] a, double[] b) { return Double.compare(a[0], b[0]); } });
这将生成以下排序数组:
[ {1, 5}, {12, 100.6}, {12.1, .85}, {13, 1.55} ]
在 Java 8 及更高版本中,您可以使用 lambda 来简化比较器:
Arrays.sort(array, Comparator.comparingDouble(o -> o[0]));
以上是如何在 Java 中使用 Arrays.sort 对二维数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!