使用java判断对象数组是否已按升序排序
时间: 2023-05-15 16:07:34 浏览: 191
可以使用Arrays类中的静态方法isSorted()来判断对象数组是否已按升序排序,示例代码如下:
```
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Integer[] arr = {1, 2, 3, 4, 5};
boolean isSorted = Arrays.isSorted(arr);
System.out.println("数组是否已按升序排序:" + isSorted);
}
}
```
如果数组已按升序排序,输出结果为true,否则为false。
相关问题
Public static boolean isSorted(Comparable[] table)判断对象数组是否已按升序排序
以下是Java代码实现:
```
public static boolean isSorted(Comparable[] table) {
for (int i = 1; i < table.length; i++) {
if (table[i].compareTo(table[i-1]) < 0) {
return false;
}
}
return true;
}
```
首先,我们遍历整个数组,从第二个元素开始。
然后,我们比较当前元素和前一个元素的大小关系,如果当前元素比前一个元素小,则说明数组没有按升序排序,返回false。
如果整个数组都遍历完了,没有发现不按升序排序的情况,则返回true。
java对对象数组输出时按时间升序排列
可以使用Java中的Arrays.sort()方法对对象数组进行按时间升序排列,其中需要自定义Comparator比较器,比较器需要重写compare()方法以指定按时间升序排列的规则。具体实现可参考如下代码片段:
```
import java.util.Arrays;
import java.util.Comparator;
public class Test {
public static void main(String[] args) {
// 创建对象数组
Object[] objects = new Object[] {
new Object("2019-01-01 00:00:00"),
new Object("2021-07-01 12:00:00"),
new Object("2020-05-01 08:00:00")
};
// 对象排序
Arrays.sort(objects, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
// 将字符串时间转换为long型时间戳进行比较
long t1 = ((Object) o1).getTime();
long t2 = ((Object) o2).getTime();
if (t1 < t2) {
return -1;
} else if (t1 > t2) {
return 1;
} else {
return 0;
}
}
});
// 输出排序结果
for (Object object : objects) {
System.out.println(object.toString());
}
}
public static class Object {
private String time; // 时间字符串
public Object(String time) {
this.time = time;
}
public long getTime() {
try {
// 将字符串时间转换为long型时间戳
return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time).getTime();
} catch (java.text.ParseException e) {
e.printStackTrace();
return 0;
}
}
@Override
public String toString() {
return time;
}
}
}
```