• ArrayList解析


    我们了解一个接口,最好的切入点是API官方文档,所以首先看下ArrayList接口的接口API:
    public class ArrayList<E>
    extends AbstractList<E>
    implments List, RandomAccess, Cloneable, Serializable

    我们首先看到ArrayList接口继承自抽象类AbstractList;关于AbstractList ,需要了解AbstractList 中
    提供了两个迭代器的实现类,默认实现了迭代器接口,
    实现了对元素的遍历(Itr和ListItr);
    其内部只有一个抽象方法 get(也就是表明继承的子类如ArrayList只需要实现(覆盖)这一个抽象的get方法即可,可以用来获取元素);
    如果子类要操作元素,还需要重写 add(), set(), remove() 方法,因为默认是不支持的。

    然后看到ArrayList接口实现了List接口;List接口的特点:元素是对象,有序,可重复。List接口中需要了解一些
    与下标有关的操作,
    如get,set,add(注意有两个重载的add方法),indexOf等等,建议手动查看API文档。


    接着ArrayList接口实现了RandomAccess接口,表明支持快速随机访问。

    ArrayList接口实现了Cloneable标明ArrayList支持克隆;实现Serializable表明支持序列化,既可以将ArrayList以流的形式,通过ObjectInputStream/ObjectOutputStream来写/读。

    ArrayList的特点是底层数据结构采用数组实现。数组中,元素的存储空间单位是连续的(支持随机访问),通过下标查询效率很高。但是数组的插入和删除效率不会很高,思考下数组每次插入或删除时都可能要进行大量的数组元素的移动;因此ArrayList适用于查询较多的场合,不适合插入或删除较多的场合。

    推荐文档:https://mp.weixin.qq.com/s/Hd22c-CHQ8OZs4sY4ukZFw

  • 相关阅读:
    Java 将Clob字段转换成String字符串
    Java BigDecimal详解
    java循环创建对象应该在循环体内还是循环体外
    Java 通过身份证获取生日和性别
    Java将数据进行分组处理
    Java 2进制和16进制的转换
    Map-HashMap 与 IF 判断内存占用对比
    Groovy脚本-通用SQL开关
    Oracle用户、授权、角色管理
    【docker随笔系列】安装sqlserver
  • 原文地址:https://www.cnblogs.com/LearnSB/p/13266657.html
Copyright © 2020-2023  润新知