12.2簡單泛型類的定義 – JAVA編程語言程序開發技術文章

一個泛型類就是有一個或多個類型變量的類。
一般的類和方法,隻能使用具體的類型(基本類型或者自定義類型)。如果要編譯應用於多種類型的代碼就要引入泛型瞭。
例12-1使用Pair類。靜態方法minmax遍歷數組同時計算出最小值和最大值。用一個Pair返回兩個結果
[java]
package core.pair_12_1; 
 
 
public class PairTest1 { 
 
    public static void main(String[] args) { 
        String[] words = {"Mary", "had", "a", "little", "lamb"}; 
        Pair<String> mm = ArrayAlg.minmax(words); 
        System.out.println("min = " + mm.getFirst()); 
        System.out.println("max = " + mm.getSecond()); 
    } 

 
class ArrayAlg { 
 
    public static Pair<String> minmax(String[] a) { 
        // TODO Auto-generated method stub 
        if (a == null || a.length == 0) 
            return null; 
         
        String min = a[0]; 
        String max = a[0]; 
         
        for (int i = 1; i < a.length; i++) { 
            if (min.compareTo(a[i]) > 0) 
                min = a[i]; 
            if (max.compareTo(a[i]) < 0) 
                max = a[i]; 
        } 
        return new Pair<String>(min, max); 
    } 
     

 
class Pair<T> { 
    private T first; 
    private T second; 
 
    public Pair() { 
        first = null; 
        second = null; 
    } 
    public Pair(T first, T second) { 
        this.first = first; 
        this.second = second; 
    } 
     
    public T getFirst() { 
        return first; 
    } 
    public T getSecond() { 
        return second; 
    } 
     
    public void setFirst(T newValue) { 
        first = newValue; 
    } 
    public void setSecond(T newValue) { 
        second = newValue; 
    } 

12.3泛型方法
泛型方法可以定義在泛型類中也可以定義在普通類中:
public static <T> getMiddle(T[] a) {
return a[a.length / 2];
}
註意,類型變量<T>放在修飾符(這裡是public static)後面,返回類型的前面。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *