泛型就是把类型明确到创建对象时,或者调用时
泛型的格式
<数据类型> 数据类型是引用数据类型
泛型定义在类上在类上 格式 public class 类名<泛型类型1,…>
public class MyClass<T> { //泛型<T> 我把泛型加在类上 T t; public T getT() { return t; } public void setT(T t) { this.t = t; } }泛型定义在方法上
在方法上的格式 public <泛型类型> 返回类型 方法名(泛型类型 变量名)
public class MyDemo2<T, U, R> implements MyInterface<T, U, R>{ @Override public R show(T t, U u) { return null; } }泛型定义在接口上
接口上的格式: public interface 接口名<泛型类型>
public class MyDemo implements MyInterface<String,Integer,Integer>{ @Override public Integer show(String s, Integer integer) { return null; } }泛型确定了数据类型以后,那么两边的数据类型要一致
Collection col1 = new ArrayList() ;
?extend E 向下限定 后面的子类不能超过前面的数据类型 Collection<? extends Animal> col10 = new ArrayList() ;
? supper E 向上限定 后面的父类数据不能小于前面的数据类型
Collection<? super Animal> col13 = new ArrayList() ;
for循环的概述
简化数组和Collection集合的遍历
格式
for(元素数据类型 变量 :数组或集合){
使用变量即可,该变量就是元素
}
ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1004); list.add(1000); list.add(1002); list.add(10026); list.add(10077); list.add(10089); list.add(10000); list.add(100444); for(Integer ele:list){ System.out.println(ele); }