Java学习笔记24——集合进阶2

集合进阶2

  • 泛型
    • 好处
    • 泛型类
    • 泛型方法
    • 泛型接口
    • 类型通配符
    • 可变参数

泛型

是jdk5中引入的特性,提供了编译时类型的安全监测机制,允许在编译时检测到非法的类型,本质是参数化类型,也就是说所操作的数据类型被指定为一个参数

参数化类型,就是将原来具体的类型参数化,在使用或者调用的时候调如具体的类型

这种参数类型可在类、方法和接口中,分别称为泛型类、泛型方法和泛型接口

定义格式
<类型>:指定一种类型的格式。这里的类型可以看做形参
指定多种类型的格式:
<类型1,类型2,类型3>
将具体调用时给定的类型看做实参,并且实参只能是引用数据类型

好处

  1. 把运行时的问题提前到了编译期间
  2. 避免了强制类型转换

泛型类

格式:
修饰符 class 类名<类型> {}
public class Generic{}
这里的T是任意的,常见的T、E、K、V等形式的参数常用于表示泛型

泛型方法

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

泛型接口

public interface Generic<T>{
	void show(T t);
}

类型通配符

  1. 为了表示各种泛型List的父类,使用类型通配符

  2. List:表示元素类型未知的List,它的元素可以匹配任何的类型,不能吧元素添加到其中

  3. 如果说我们不希望List是任何泛型List的父类,只希望它代表某一类泛型List的父类,可以使用类型通配符的上限====
    如:List:表示的类型是Number或者其子类型

  4. 还可以用类型通配符指定下限
    List:表示的类型是Number或者其父类

可变参数

可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了

public void method(int... a){

}

a实际是个数组
多个参数,可变参数放后面

方法 特点
List.asList(T… t) 不支持增删
List.of(T… t) 不支持增删改
Set.of(T… t) 不支持增删,没有修改,不能给重复元素

你可能感兴趣的:(java,学习,笔记)