编写一个返回对象数组中最大对象的方法。方法签名是:编写一个返回对象数组中最大对象的方法
public static Object max(java.lang.Comparable[] a)
所有对象都是java.lang.Comparable
接口的实例。数组中对象的顺序是使用compareTo
方法确定的。
写创建的10个字符串数组,十个整数数组,和10 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
思考问题第一。在你以前从未见过的内容列表中,你观察到的绝对最大元素是负无穷。你想从中建立起来。 – Makoto 2015-04-03 15:03:02
这会伤害你:'tempObj = new Object();',因为你正在创建一个没有实现'compareTo'的对象,所以无法进行比较;不要使用它。相反,将tempObj设置为数组中的第一个项目以开始。不要给你的Max类使用'compareTo'方法。这不是必要和分散注意力。 – 2015-04-03 15:04:17