gpt4 book ai didi

java - 使用 Comparable 接口(interface)返回字符串、日期、整数的最大值的程序

转载 作者:行者123 更新时间:2023-11-30 04:57:34 25 4
gpt4 key购买 nike

public abstract class Main implements Comparable {

public static void main(String[] args) {
Integer[] intArray = {1,2,3,4,5,6,7,8,9,10};
String[] stringArray = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
java.util.Date[] dateArray = {};

for (int j = 0; j < 10 ; j++)
dateArray[j] = new java.util.Date();

/* Code to call max method and display the largest value of these */



}

public static Object max (Comparable[] a){
Object tempObj = new Object();

for (int i = 0; i < a.length - 1; i++){
if ((a[i]).compareTo(a[i+1]) > 0 )
tempObj = a[i];
else
tempObj = a[i+1];
}

return tempObj;
}

public int compareTo(Object o) {

if (/*this*/ > o)
return 1;
else if (/*this*/ < o)
return -1;
else
return 0;
}
}

虽然以通用 max(a, b) 格式编写可能更容易,但要求之一是以这种方式编写。我找不到一种方法来引用该对象的值实际上是在调用compareTo方法。

最佳答案

担忧:

  • 为什么Main要实现Comparable? ——不应该。
  • 为什么 Main 是抽象的? ——不应该。
  • 为什么你的代码中有自己的compareTo方法? ——你不应该。无论如何它永远不会被调用(也不应该被调用)。

只需使用您知道 Comparable 对象具有的compareTo 方法即可。您知道 a 数组中的每个项目,无论它是什么类型,都实现 Comparable,因此您可以直接在该项目上调用此方法:

例如,

a[i].compareTo(a[i+1])

您当然知道,最简单的解决方案是对数组 a 调用 java.util.Arrays.sort(a) 并取出第 0 项。

关于java - 使用 Comparable 接口(interface)返回字符串、日期、整数的最大值的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com