zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    css引入方式
    HTML标签
    动态导入模块impoerlib
    pymysql连接数据库
    创建数据库表之引擎
    IO多路复用互动聊天,select函数监听
    欧拉筛法求素数个数
    与三角形相关的问题 WITH 有向面积
    时间复杂度的计算
    折半查找
  • 原文地址:https://www.cnblogs.com/LearnSB/p/13266657.html
Copyright © 2011-2022 走看看