java中如何使用泛型方法比較大小
題意
怎樣根據(jù)傳入的泛型數(shù)組比較最大最小值,數(shù)組的類型可以是int型,可以是String型,也可以是double型。。。
首先要定義一個泛型類,定義泛型T,存儲咱們的最大值最小值,提供公開的方法,重載構(gòu)造函數(shù),存儲咱們的最大最小值;
package demo.com.fanxing; public class Num<T> { //定義最大最小值 public T max; public T min; //構(gòu)造函數(shù)(無參) public Num() { super(); } //構(gòu)造函數(shù)(有參) public Num(T max, T min) { super(); this.max = max; this.min = min; } public T getMax() { return max; } public void setMax(T max) { this.max = max; } public T getMin() { return min; } public void setMin(T min) { this.min = min; } /** * 重寫輸出字符串 */ @Override public String toString() { return "Num [max=" + max + ", min=" + min + "]"; } }
定義一個泛型方法比較最大最小值
傳入我們的泛型數(shù)組
package demo.com.fanxing; public class Compare { /** * 比較最大最小值的泛型方法 * @param num * @return */ //這里必須在public和返回值類型中加入泛型去繼承Comparable,不然不好比較 public <T extends Comparable<T>> Num<T> getMaxMin(T[] num){ T max = num[0]; T min = num[0]; //遍歷數(shù)組,比較出最大最小值 for (int i = 0; i < num.length; i++) { if (max.compareTo(num[i]) < 0) { max = num[i]; } if (min.compareTo(num[i]) > 0) { min = num[i]; } } //返回的是Num泛型類的帶參構(gòu)造的對象 return new Num<T>(max,min); } }
最后就是進(jìn)行測試了
package demo.com.fanxing; public class TestWork extends Num { public static void main(String[] args) { Compare compare=new Compare(); //整型數(shù)組比較 Integer[] num ={22,2,99,9,5,6}; System.out.println("=======整型數(shù)組比較======="); System.out.println((compare.getMaxMin(num))); //字符串?dāng)?shù)組比較 String[] str = new String[] {"aas","sadx","werd","111"}; System.out.println("=======字符串?dāng)?shù)組比較======="); System.out.println((compare.getMaxMin(str))); //Double數(shù)組比較 Double[] dou = new Double[] {1.1,2.2,3.3,66.66,8.0}; System.out.println("=======Double數(shù)組比較======="); System.out.println((compare.getMaxMin(dou))); } }
測試的結(jié)果
如圖:
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中InputSteam怎么轉(zhuǎn)String
面了一位實(shí)習(xí)生,叫他給我說一下怎么把InputStream轉(zhuǎn)換為String,這種常規(guī)的操作,他竟然都沒有用過我準(zhǔn)備結(jié)合工作經(jīng)驗(yàn),整理匯集出了InputStream 到String 轉(zhuǎn)換的十八般武藝,助大家闖蕩 Java 江湖一臂之力,需要的朋友可以參考下2021-06-06SpringBoot?全局線程池配置及應(yīng)用小結(jié)
為了提高應(yīng)用程序的性能和響應(yīng)速度,線程池是一個非常重要的工具,本文主要介紹了Spring?Boot?全局線程池配置及應(yīng)用,具有一定的參考價值,感興趣的可以了解一下2024-05-05IDEA 程序包不存在,找不到符號但是明明存在對應(yīng)的jar包(問題分析及解決方案)
這篇文章主要介紹了IDEA 程序包不存在,找不到符號但是明明存在對應(yīng)的jar包 的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08SpringBoot?Redis清除所有的key的實(shí)現(xiàn)方法
本文主要介紹了SpringBoot?Redis清除所有的key的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑
這篇文章主要介紹了Java中使用正則表達(dá)式獲取網(wǎng)頁中所有圖片的路徑,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-06-06