List<?>是使用了类型通配符"?",看起来和原型类差不多,其实不然,使用的好处有二
(1)List<?>是任何泛型List的父型类,因此可以将List<String> List<Integer> List<Object>等作为实参传给你自定义的方法进行处理
(2)List<?>类型的变量在调用方法时是受到限制的,凡是必须知道具体类型参数才能进行的操作均被禁止
List<T>是自定义的泛型类,规定初始化时候所规定的参数类型,所有的集合元素都要满足,不仅可以方便的存取访问,还可以用一种模型定义好几种类型的集合。
比如List<String> s = new List<String>(),那么集合中所有的元素类型都将是String.同样,可以定义成其他类型