编写一个返回对象数组中最大对象的方法。方法签名是:
public static Object max(java.lang.Comparable[] a)
所有对象都是java.lang.Comparable
接口的实例。使用compareTo
方法确定数组中对象的顺序。
在main方法中编写一个测试程序,该方法创建一个包含十个字符串的数组,一个包含十个整数的数组和一个包含十个java.util.Dates
的数组,并找到最大的String
(即按字母顺序排列)数组中的{),Integer
和Date
。
将您的java类命名为Max和您的java文件Max.java。
我很难掌握这项任务中我需要做的事情。我真正挣扎的两件事是如何使用接口和compareTo
方法。根据我的理解,接口只保存方法,然后我必须在接口外调用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
答案 0 :(得分:1)
你几乎就在那里但是
public void CompareTo
方法无用。顺便说一句,你从不使用它。a[i + 1]
,请考虑a.length - 1
是什么。数组的有效索引是什么?new Object()
?max()
以查看它是否正常工作。答案 1 :(得分:0)
怎么样:
public static Object max(Comparable[] a) {
return Collections.max(Arrays.asList(a));
}