• 关于arraylist 与泛型的概念


    在java的学习过程中,我们可以看到很多很多类似Arraylist<T>这样的结构出现,那么Arraylist类到底和泛型有什么关系呢?

    今天在这里小做总结一下:

    1,什么叫“泛型” 具体可参考博客:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html

    2, 什么时arraylist,具体可以参考:http://blog.csdn.net/jinuxwu/article/details/6771121

       这里我是这么总结的:类,对象,方法均可以有一个代表类型的形参,可以用T,E,V等表示。形参顾名思义只是一个形式,一个泛型,没有具体的实际类型参数。

                                  所以这些用T,E,V等参数模糊代表类型的类,对象,方法。我们就叫做泛型。等到我们传入具体的实际类型参数(及实参)给这些类,对象方法时。它们就有了指定的类型。(注意我们平常见到的一些package中的类,它们都不是泛型,因为类,对象,方法都有具体的类型)。

    举个例子:下面的ArrayList类就是一个泛型,进去它的实现方法中,我们可以看到

                                      

    public class ArrayList<E> extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
    {
    private static final long serialVersionUID = 8683452581122892189L;


    private transient Object[] elementDat

    ................

    }

    E代表形参,表示arraylist是一个泛型。我们不传入具体的实参时,则可以存储任何类型的内容到arraylist中eg:ArrayList List = new ArrayList(); (但注意,这样会导致读取内容时抛出异常)。

    所以我们在使用arraylist时,一般给它指定具体的实际类型eg:ArrayList<String> list = new ArrayList<String>()

  • 相关阅读:
    Educational Codeforces Round 95(A-C题解)
    Codeforces Round #669 (Div. 2)A-C题解
    Codeforces Round #668 (Div. 2)A-C题解
    八月第四周总结
    牛客小白月赛27部分题解
    八月第三周总结
    Codeforces Round #665 (Div. 2)A-C题解
    Kubernetes K8S之存储ConfigMap详解
    在Linux下如何根据域名自签发OpenSSL证书与常用证书转换
    Linux系统如何在离线环境或内网环境安装部署Docker服务和其他服务
  • 原文地址:https://www.cnblogs.com/happyliuyi/p/5110390.html
Copyright © 2020-2023  润新知