泛型
1)在编译时,由编译器约束放入集合中的类型
2)在运行时,编译器会擦除原泛型类型
3)泛型二边要么都不使用约束,要么二边约束一致类型,同时二边必须使用引用类型
4)为了与JDK1.4兼容,泛型可以一边有约束,一边无约束
思考:不利用中间变量,将二个数交互
5)当一个类中出大量的泛型方式或属性/字段,此时可以将该类作成泛型类
6)如果使用泛型通配符,只能获取与泛型具体类型无关的信息,例如:长度。
7)有二个类,初学者一定要注意:Collections和Arrays

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

    List list = new  ArrayList();
    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  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 {

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

}

使用:

    Apple a1 = new Apple();
        a1.buy(10);
        Apple a2 = new Apple();
        a2.buy(5.5);

通配符

public static void main(String[] args) {
        List booleanList = new ArrayList();
        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 stringList = new ArrayList();
        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 stringList) {
        //集合非空且至少有2个值
        if(stringList!=null && stringList.size()>=2){
            Collections.reverse(stringList);
        }
    }