java泛型

泛型
1)在編譯時,由編譯器約束放入集合中的類型
2)在運行時,編譯器會擦除原泛型類型
3)泛型二邊要麼都不使用約束,要麼二邊約束一致類型,同時二邊必須使用引用類型
4)爲了與JDK1.4兼容,泛型可以一邊有約束,一邊無約束
思考:不利用中間變量,將二個數交互
5)當一個類中出大量的泛型方式或屬性/字段,此時可以將該類作成泛型類
6)如果使用泛型通配符,只能獲取與泛型具體類型無關的信息,例如:長度。
7)有二個類,初學者一定要注意:Collections和Arrays

 ``
 public static void main(String[] args) {

    List<String> list = new  ArrayList<String>();
    list.add("liwen");
    list.add("jiayou");
    show(list);

}
public static void show(List list) 
{
    for(Object obj:list)
    {
        String s = (String) obj;
        System.out.println(s + "\t");
    }
}

`   public static void main(String[] args) {
    Boolean numA = false;
    Boolean numB = true;
    System.out.println("numA" + numA);
    System.out.println("numB" + numB);
    swap(numA,numB);
}
//泛型方法
public static <T> void swap(T numA,T numB) {
    T temp = numA;
    numA = numB;
    numB = temp;
    System.out.println("numA" + numA);
    System.out.println("numB" + numB);
}`

//泛型類
public class Apple<T> {

//泛型方式
public void buy(T t){
    System.out.println("蘋果:" + t  + "信息");
}

}

使用:

    Apple<Integer> a1 = new Apple<Integer>();
        a1.buy(10);
        Apple<Double> a2 = new Apple<Double>();
        a2.buy(5.5);

通配符

public static void main(String[] args) {
        List<Boolean> booleanList = new ArrayList<Boolean>();
        booleanList.add(true);
        booleanList.add(false);
        show(booleanList);
    }
    public static void show(List<?> list) {
        System.out.println("集合長度爲:" + list.size());
        for(Object o : list){
            System.out.println(o);
        }
    }

排序:

List<String> stringList = new ArrayList<String>();
        stringList.add("one");
        stringList.add("two");
        stringList.add("three");
        System.out.println("倒序前:");
        for(String s : stringList){
            System.out.print(s+"\t");
        }
        reverse(stringList);
        System.out.println("\n倒序後:");
        for(String s : stringList){
            System.out.print(s+"\t");
        }
    }
    //倒序集合
    public static void reverse(List<String> stringList) {
        //集合非空且至少有2個值
        if(stringList!=null && stringList.size()>=2){
            Collections.reverse(stringList);
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章