(有兩種思路)
(就是有幾種數字陣列就寫幾個過載方法,因為arrays中的tostring()方法就是這麼幹的(黃玉昆給的解釋,很好),畢竟基本資料型別沒封裝類好操作)。
public class getmaxandmin ;
string max_min = getmax_min(arr);
system.out.println(max_min); //列印結果:陣列中,最大值為:98 , 最小值為 :1
}public static string getmax_min(int arr)
return "陣列中,最大值為:"+max+" , 最小值為 :"+min;
} public static string getmax_min(double arr)
return "陣列中,最大值為:"+max+" , 最小值為 :"+min;
} public static string getmax_min(long arr)
return "陣列中,最大值為:"+max+" , 最小值為 :"+min;
}}
(開始我想的也是這種,可是沒有想到結合集合去解決在陣列型別未知時怎麼比較大小,問了下老師得到了滿意的答覆)
不能像這樣用泛型getmax(t),因為t不接收基本型別的陣列。
//這是關鍵:因為不確定陣列的資料型別,無法用》比較大小,可以考慮是用集合工具了collections的max()方法
/* 思路:
* 1、傳入乙個陣列引用獲取其位元組碼檔案
* 2、用class的靜態方法,isarray判斷是不是陣列
* 3、是陣列的話通過componenttype()方法獲取其陣列型別
* 4、對型別進行判斷,是基本資料型別就乙個個新增進list集合(自動裝箱)
* 5、不是的話就用object中的arraycopy(),直接新增進list集合。
* 6、因為jvm不知道陣列型別,所以不能用<、>比較符號,用collections中的max,min方法獲取集合中的最大值最小值
* */
class getmaxandmin;
double ds = ;
float fs = ;
integer in = ;
double d = ;
system.out.println(getmax_min(ins)); //陣列中最大值為:98, 最小值為:1
system.out.println(getmax_min(ds)); // 陣列中最大值為:328.0, 最小值為:123.323
system.out.println(getmax_min(fs)); //陣列中最大值為:123.5, 最小值為:32.4
system.out.println(getmax_min(in)); //陣列中最大值為:17, 最小值為:1
system.out.println(getmax_min(d)); // 陣列中最大值為:328.0, 最小值為:123.323
}
@suppresswarnings()
public static string getmax_min(object arr)
} else if (componenttype == integer.class
|| componenttype == float.class
|| componenttype == double.class
||componenttype == long.class) else
} else
return "陣列中最大值為:"+collections.max(list)+", 最小值為:"+collections.min(list);
}}
黑馬程式設計師 陣列和方法
陣列 陣列宣告語法 資料型別 陣列名 new 資料型別 陣列長度 例如 int score new int 5 就宣告了乙個長度為5的陣列,陣列名叫score 通俗點,就是宣告了乙個陣列,裡面有5個int型別的變數 陣列名叫 score 裡面的5個型別的變數叫陣列的元素.console.clear ...
黑馬程式設計師 陣列
asp.net unity開發 net培訓 期待與您交流!一 陣列 1.陣列概述 c 陣列從零開始建立索引,即陣列索引 從零開始。宣告陣列時,方括號 必須跟在型別後 面,而不是識別符號後面。陣列的大小不是其型別的一部分 例如 int numbers numbers new int 10 number...
C C 求最大值方法
很多方面c語言和c 都很相似.1.一般法 條件表示式 直接在main函式中運算 特點 簡短清晰 include using namespace std int main void int getmax int array,int count int getmax 3 int a,int b,int ...