編寫一個返回對象數組中最大對象的方法。方法簽名是:編寫一個返回對象數組中最大對象的方法
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