有一个二维数组int[][2],排序规则:前面的第一个元素大于本数组第一个元素的数量等于数组的第二个数量,java代码怎么写
时间: 2024-03-20 11:39:48 浏览: 94
C语言《一维数组和冒泡算法》完整版资料.ppt
可以使用Java的Comparator接口来实现自定义排序规则。具体实现代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
int[][] arr = {{2, 3}, {1, 2}, {5, 0}, {3, 1}, {4, 0}};
Arrays.sort(arr, new MyComparator());
for (int i = 0; i < arr.length; i++) {
System.out.println(Arrays.toString(arr[i]));
}
}
static class MyComparator implements Comparator<int[]> {
public int compare(int[] a, int[] b) {
int countA = 0, countB = 0;
for (int[] arr : a) {
if (arr[0] > a.length) {
countA++;
}
}
for (int[] arr : b) {
if (arr[0] > b.length) {
countB++;
}
}
return countB - countA;
}
}
}
```
其中,自定义的比较器类MyComparator实现了Comparator接口,并重写了其中的compare方法。在compare方法中,根据题目要求,分别计算两个数组中前面第一个元素大于本数组第一个元素数量的个数,然后将它们进行比较,返回比较结果即可。
主函数中使用Arrays.sort方法对二维数组进行排序,传入自定义比较器MyComparator对象即可。最终输出排序后的数组。
阅读全文