java泛型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }
    }

以上是关于java泛型的主要内容,如果未能解决你的问题,请参考以下文章

201621123062《java程序设计》第九周作业总结

什么意思 在HashMap之前 ? Java中的泛型[重复]

这个嵌套类构造函数片段可以应用于泛型类吗?

201621123037 《Java程序设计》第9周学习总结

Java——泛型

作业09-集合与泛型