泛型的概念和使用泛型的好处
泛型概述
泛型:是一种位置的数据类型,当我们不知道使用什么数据类型的时候可以使用泛型
泛型也可以堪称是一个变量,用来接受数据
E e:Element元素
T t type类型
ArrayList集合在定义的时候,不知道集合中都存储什么类型的数据,所以类型使用泛型
E:未知的数据类型
public class ArrayList<E>{
public boolean add(E e){}
public E get(E e){}
}
创建集合对象不使用泛型
好处:
集合不使用泛型,默认的类型就是Object类型,任何类型的数据都可以存放
弊端:
不安全,会引发异常
public static void main(String[] args) {
Collection coll = new ArrayList();
coll.add("abc");
coll.add("bcd");
coll.add(2);//由于集合没有左任何限定,任何类型都可以存放
Iterator iterator = coll.iterator();
while(iterator.hasNext()){
String next = (String) iterator.next();
System.out.println(next);
System.out.println(next.length());
}
}
创建集合对象使用泛型
好处:
1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型
2.把运行期异常,提升到了编译期
弊端:泛型是什么类型,只能存储什么类型的数据
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
// list.add(1);//错误写法
list.forEach(s -> System.out.println(s));
}