gpt4 book ai didi

java - 编写一个返回对象数组中最大对象的方法

转载 作者:行者123 更新时间:2023-12-01 11:42:14 25 4
gpt4 key购买 nike

编写一个返回对象数组中最大对象的方法。方法签名是:

public static Object max(java.lang.Comparable[] a)

所有对象都是java.lang.Comparable接口(interface)的实例。数组中对象的顺序是使用 compareTo 方法确定的。

在 main 方法中编写一个测试程序,创建一个包含 10 个字符串的数组、一个包含 10 个整数的数组和一个包含 10 个 java.util.Dates 的数组,并找到最大的 数组中的 String(即按字母顺序排列)、IntegerDate

将您的 Java 类命名为 Max,将您的 Java 文件命名为 Max.java。

我很难理解在这项作业中我到底需要做什么。我真正遇到的两件事是如何使用接口(interface)和compareTo方法。据我了解,接口(interface)只包含方法,那么我必须在接口(interface)之外调用compareTo方法?无论如何,这就是我到目前为止所拥有的。

public class Max {
public static Object max(java.lang.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;
}

// compare toMethod
public void CompareTo() {
a[i].compareTo(a[i + 1]);
}
}// End Main

class MaxTest implements Max {
public 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();

}// End Main
}//End Class

最佳答案

你已经快到了,但是

  1. public void CompareTo 方法没有用。顺便说一句,你从来没有使用过它。
  2. 算法不正确。想象一下通过在纸上执行它会返回 [4, 3, 2, 1] 的结果。另外,请考虑一下,如果 i 等于 a.length - 1,则 a[i + 1] 是什么。数组的有效索引是什么?
  3. 我认为您可以放心地假设您的数组始终至少有一个元素。如果它是一个整数数组,并且包含 42,那么最大元素是多少?是 42 还是 new Object()
  4. 您的 main 方法创建了 3 个数组,但从未使用这些数组方法调用 max() 来查看它是否正常工作。

关于java - 编写一个返回对象数组中最大对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434557/

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