Fork me on GitHub

java持有对象【2】ArrayList容器续解

此为JDK API1.6.0对ArrayList的解释。

 

ArrayList

使用java泛型创建类很复杂,但是应用预定义的泛型很简单。例如,要想定义用来保存Apple对象的ArrayList,可以声明ArrayList<Apple>,尖括号内为类型参数,(可以为多个)。它指定了容器可以保存的类型。

通过使用泛型,可以在编译期防止将错误类型的对象放置到容器中。

ArrayList向上转型为List。

应该注意到,在将元素从List中取出时,类型转换不是必须的了。因为List在调用get()时会替你执行转型,他知道你保存的是什么类型。

这样,通过使用泛型,不仅编译器会检查你放置容器中的对象类型,而且在使用容器中的对象时,可以使用更加清晰地语法。同时,可以用foreach来选择list的每个元素。

 

引用上个博客的代码,如果创建多个类继承Apple()类,例如class Fuji extends Apple(){},然后使用预定义的泛型ArrayList<Apple> apples=new ArrayList<Apple>();   ,使用add()方法添加Apple各子类的对象实例,例如apples.add(new Fuji());   ,然后用foreach方法输出,得到的结果是类似Fuji@35ec12  之类。

解析:程序的输出是从Object默认的toString()方法产生的。该方法将打印类名,后面跟随的散列码的无符号十六进制表示(这个散列码是通过hashCode()方法产生的)。

 

posted @ 2017-07-05 22:56  sunwengang  阅读(126)  评论(0编辑  收藏