Java基础Day-Seventeen
泛型及高阶应用
-
所谓泛型,就是允许在定义类、接口、方法时使用类型形参(泛型),这个类型形参将在声明变量、创建对象、调用方法时动态地指定,进而让程序具备编译时检查能力
-
泛型是JDK1.5提供的特性,最常见的泛型应用场景便是在使用集合时通过泛型指定集合内对象的类型,为程序代码提供了编译时纠错的能力
自定义泛型类
-
自定义泛型类,需要在类名后增加"<标识符>",如下所示:
public class SampleClass<T>{...}
-
<T>与<E>的区别
-
标识符的字母本身并无强制要求,常见写法有两种:
-
<T>是Type单词的首字母,说明传入的是类型
-
<E>是Element元素的首字母,代表是集合中的元素
-
-
-
泛型类的创建与使用
package com.imooc.pt; import java.util.ArrayList; import java.util.List; import java.util.Random; //随机选择List中的元素 public class CollectionUtils<E> { private List<E> data=new ArrayList<>(); public void add(E element){ data.add(element); } public E randomSelect(){ int idx=new Random().nextInt(data.size());//0~data.size-1,左闭右开 E ret=data.get(idx); return ret; } public static void main(String[] args) { CollectionUtils<String> utils=new CollectionUtils<>(); utils.add("张三"); utils.add("李四"); utils.add("王五"); utils.add("赵六"); utils.add("郑七"); String name=utils.randomSelect(); System.out.println(name); System.out.println(utils.randomSelect()); System.out.println(utils.randomSelect()); System.out.println(utils.randomSelect()); System.out.println(utils.randomSelect()); } }