自学Java第三十一课

开头我利用TreeSet做了一个案例,用到了Random

 

 泛型

  顾名思义,包括广泛的类型,能让我们存储数据更加方便。本质为参数化类型。  它所操作的数据类型被指定为一个参数。

  参数化类型:将类型由原来的数据类型参数化,在使用时在传入具体类型。

  格式:<类型> 指定一种类型,可看作形参;  <类型1,类型2...>多种类型,可看作形参;

    注:具体调用时给定类型可看成形参,形参必须为引用类型。 Object代表所有引用类型。

  优点:①将运行时出现的问题提前到了编译阶段;

     ②避免了类型强制转换。

泛型类

  格式:修饰符class类名<类型>{}

 

 

 

 泛型方法

  

public class gen<T>{
        public <T> void show(T t){
            System.out.println(t);
    }
}

  这个方法适用于各种数据类型输出。

 

 泛型接口

  

1 public interface gen{
2     void show(T t);
3 }
1 public interface generlm implements gen<T>{
2     //重写方法
3     public void show(T t){
4         System.out.println(t);
5     }
6 }

类型通配符<?>

  目的:为表示各种泛型List父类

  List<?>:表示元素类型未知的List,元素可匹配任何类型。

    注:这种带通配符的List仅表示它是各种泛型List父类,不能添加元素。

  类型通配符上限:<?extends类型>

    例:List<?extendsNumber>表示类型为Number 或其子类。

  类型通配符下限:<?super类型>

    例:List<?super NUmber>表示类型为Number 或其父类

 

 可变参数

  又称参数的个数可变,用作方法的形参出现

  格式:修饰符 返回值类型 方法名(数据类型...变量名){}

    例:public static sum(int...a){}

  注:①a变量是一个数组;②如果一个方法有多个参数,包含可变参数,可变参数必须放最后,变量可包含所有数据

 

 可变参数的使用

  Arrays中静态方法:public static <T> List<T>asList(T...a) 返回值由指定数组支持固定大小列表

    其中元素不可增删,可以修改。

  List接口中静态方法:public static<E>List <E>of(E...elemnets)返回值包含任意数量元素不可变列表

    其中元素不可以增删改。

  Set接口中静态方法:public static<E>Set<E>of(E...elements)返回一个包含任意数量元素的不可变集合

    其中元素不可增删,没有方法进行修改

 

 明天将学习集合体系中的Map。

posted on 2021-08-04 20:16  跨越&尘世  阅读(22)  评论(0编辑  收藏  举报