在Java中,判断一个数组是否是降序排列可以通过以下几种方法:
使用`Collections.reverseOrder()`
如果你有一个`Integer`数组,你可以使用`Collections.sort(array, Collections.reverseOrder())`来对其进行降序排序。如果排序后的数组与原始数组相同,则原始数组是降序排列的。
Integer[] array = {5, 7, 2, 6, 8, 1, 4};
Arrays.sort(array, Collections.reverseOrder());
if (Arrays.equals(array, new Integer[]{8, 7, 6, 5, 4, 2, 1})) {
System.out.println("数组是降序排列的");
} else {
System.out.println("数组不是降序排列的");
}
使用`Comparator`接口
如果你有一个基本数据类型的数组,如`int[]`,你需要使用`Arrays.sort`方法,并提供一个自定义的比较器来实现降序排序。然后,你可以比较排序后的数组和原始数组是否相同。
int[] array = {5, 7, 2, 6, 8, 1, 4};
Arrays.sort(array, new Comparator
() { @Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
if (Arrays.equals(array, new int[]{8, 7, 6, 5, 4, 2, 1})) {
System.out.println("数组是降序排列的");
} else {
System.out.println("数组不是降序排列的");
}
检查数组元素
你也可以通过遍历数组并比较相邻元素来判断数组是否是降序排列的。如果每个元素都大于或等于其后面的元素,则数组是降序排列的。
int[] array = {5, 7, 2, 6, 8, 1, 4};
boolean isDescending = true;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] < array[i + 1]) {
isDescending = false;
break;
}
}
if (isDescending) {
System.out.println("数组是降序排列的");
} else {
System.out.println("数组不是降序排列的");
}