问题:
集合:用于存放多个(不同类型)的对象
---- 容易出现转型错误 ClassCastException
上面的ArrayList对象没有限定放什么类型的数据,所以我们就往里面放东西了(int型和字符串)
解决方法:
集合:存放多个对象(限定为一种类型)
---- 不需要转型,没有转型错误
泛型(1):
泛型:Generic Programming,JDK1.5推出的特性,带<>的类型限定语句是Java里面的一个新的特性
作用:编写的代码可以被很多不同类型的对象所重用
泛型(2):Generic Programming可以分为三种
(1)泛型类:ArrayList,HashSet,HashMap等
(2)泛型方法:Collections.binarySearch,Arrays.sort等 (可以适应不同类型的参数)
(3)泛型接口:List,Iterator等 (支持各种类型,对不同类型元素进行遍历)
泛型(3):使得代码能够为各种不同的数据类型提供支持
---- 泛型的本质:参数化类型,避免了类型转换,代码可以复用(根据传入的参数类型,能够推断出具体的类型进行正常处理)
---- 其他语言同类:C++的模板(Template) C#的泛型
泛型(4):进一步探索ArrayList的源码