JDK1.5之前List是中的数据类型是按照object接收的,也就是所有的数据转换成object类型存放,之后加入泛型概念,泛型是一种能根据需要确定数据类型的技术。List<E>(随便取名字,E、T比较常见)表示list中的数据类型是泛型,E表示它抽象,定义的时候没有明确指定类型。在实例化的时候再根据需要自己改变,这样可以让List可以存放任意数据的数据。
list<E>的意思就是:当你需要保存基本数据类型的时候,将E改成对应的基本数据类型的包装类。保存整数就用List<Integer>,保存小数用List<Float>,保存字符用List<Character>。。。
当你使用List<Integer>时,就意味着list必须存放Integer对象,不然就会出现数据类型转换异常。
当需要引用数据类型时,用对应的数据类型就可以,如List<String>,自定义的类List<Person>,自定义接口List<Iinterface>,自定义数组List<int[]>等。
当然List本身可以保存Object数据类型,所以也可以不指定泛型。
List list=new ArrayList();
list.add("abc");
这样的语法也不会报错,因为字符串是String对象,可以向Object自动转型,保存基本数据类型也可以自动装箱变成基本数据类型的包装类对象保存,但是这样的用法不规范,因为List本身定义了泛型你却没有使用,这叫泛型的擦除。 |