泛型和容器

Posted sam-cjm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型和容器相关的知识,希望对你有一定的参考价值。

一.不使用泛型的容器

在JavaSE5之前,Java中是没有泛型这一概念的,那么容器没有泛型怎么使用呢?

代码如下:

ArrayList apples = new ArrayList();// 没有使用泛型
apples.add(new Apple());// 集合可以添加Apple对象
apples.add(new Car());// 也可以添加Car对象

在没有使用泛型是这个ArrayList类型的实例对象既可以加入Apple对象也可以加入Car对象类。

当我们明确的获得一个集合对象并且知道其类型时,可以没有问题的对其对象进行操作。

但是当我们在集合中拥有大量元素时遍历集合,并且我们自己也不知道取得的元素时哪一个类的对象时,那么就会出现问题。

通常我们可以使用关键字instanceof关键字来判断取得对象的类型然后进行操作代码如下:

public static void main(String[] args) {
        ArrayList apples = new ArrayList();// 没有使用泛型
        apples.add(new Apple());// 集合可以添加Apple对象
        apples.add(new Car());// 也可以添加Car对象
        apples.add(new Car());
        apples.add(new Car());
        apples.add(new Car());
        apples.add(new Car());
        apples.add(new Car());
        System.out.println(apples.size());
        for(int i=0;i<apples.size();i++) {
            if(apples.get(i)instanceof Apple) {//匹配Apple类时
                System.out.println(i+"号对象是苹果");
            }else {
                System.out.println(i+"号对象是车");
            }
        }
    }

技术分享图片

 

以上是关于泛型和容器的主要内容,如果未能解决你的问题,请参考以下文章

C++泛型和算法

UML 与泛型和可为空字段的关系

0513 泛型和学生信息

0513 泛型和学生信息

java 泛型和object比较

需要在泛型和子类代码中相互引用的 C++ 类