有兩種思路:
一種是過載方式(就是有幾種數字陣列就寫幾個過載方法,因為arrays中的tostring()方法就是這麼幹的(黃玉昆給的解釋,很好),畢竟基本資料型別沒封裝類好操作)。
[j**a]
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;
} }
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()方法
[j**a]
/* 思路:
* 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);
} } /*
思路:* 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);
}}
符號隔開數字求最大值
問題描述 題目很簡單,給出n個數字,不改變它們的相對位置,在中間加入k個乘號和n k 1個加號,括號隨便加 使最終結果盡量大。因為乘號和加號一共就是n 1個了,所以恰好每兩個相鄰數字之間都有乙個符號。例如 n 5,k 2,5個數字分別為1 2 3 4 5,可以加成 1 2 3 4 5 24 1 2 ...
求自定型別元素的最大值
4 5 求自定型別元素的最大值 10分 本題要求實現乙個函式,求n個集合元素s中的最大值,其中集合元素的型別為自定義的elementtype。elementtype max elementtype s,int n 其中給定集合元素存放在陣列s中,正整數n是陣列元素個數。該函式須返回n個s元素中的最大...
求自定型別元素的最大值
本題要求實現乙個函式,求n個集合元素s中的最大值,其中集合元素的型別為自定義的elementtype。elementtype max elementtype s,int n 其中給定集合元素存放在陣列s中,正整數n是陣列元素個數。該函式須返回n個s元素中的最大值,其值也必須是elementtype型...