一、引子
List list = new ArrayList();
list.add(1);
list.add(2);
list.add("String");
System.out.println(list);
List <String> lt1 = new ArrayList<>();
List <Integer> lt2 = new ArrayList<>();
复制代码
观察这样一段代码,我们会发现当使用Arraylist实现List接口的时候,我们并没有定义数据类型,list同时能够存Integer和String类型的数据。并且在我们定义了lt1和lt2的时候分别指明了Integer和String数据类型,同样也是可行的。那么我们就会发现List接口在定义的时候应该并不是指定了一个确定的数据类型,在查看源码的时候我们就能够发现List接口定义了泛型<T>,这时候我们回忆起在使用HashMap的时候同样也是需要根据需要定义数据类型,再去查阅HashMap源码,果不其然:
那么这个时候我们多少也能够理解泛型的作用了,下面来看泛型定义:因为集合存放的数据类型不固定,故往集合里面存放元素时,存在安全隐患?如果在定义集合