zoukankan      html  css  js  c++  java
  • ArrayList(JDK1.9)

    一、ArrayList概念。

       1、数据结构。它是一个数组,可以动态增长的数组。

     

      2、继承实现关系图。继承抽象List,实现List、随机方法、克隆、序列化。

      3、

     

    二、内部类。

    final class ArrayListSpliterator implements Spliterator<E>
    private class Itr implements Iterator<E>
    private class ListItr extends Itr implements ListIterator<E>
    private static class SubList<E> extends AbstractList<E> implements RandomAccess

    三、成员变量。

     

       1、数组elementData。是最重要的成员。存放真实数据。

       2、大小size。数组中已经存放的元素个数,而elementData.length表示数组的大小,显然size <= elementData.length。当两者相等则需要扩容。

       3、数组的默认容量DEFAULT_CAPACITY。

     

       4、数组最大容量MAX_ARRAY_SIZE。

       5、空数组EMPTY_ELEMENTDATA。用户指定容量为0时返回的。

     

       6、默认容量的空数组DEFAULTCAPACITY_EMPTY_ELEMENTDATA。

     

       7、序列号。

     

       3、

       3、

    四、成员方法。

      1、构造方法1。指定数组大小。检查容量参数的合法性。确定数组大小。

      2、构造方法2。不指定容量。则为空数组。

      3、构造方法3。用一个集合初始化。

      4、get方法。先检查参数,主要是数组下标是否越界处理。

     

      5、扩容方法。新的容量 = 旧容量 + 旧容量/2;

     

     新增数据的相关方法:

      6、在尾部添加一个新元素。(检测是否扩容)

     

      7、指定位置处添加元素。(检查索引合法性,必须在[0,size]范围内)

     

      8、在尾部添加多个新元素的集合。(检测是否扩容)

     

      9、在指定位置处开始添加多个新元素的集合。(检测是否扩容)

     

    删除元素的相关操作:

      10、删除指定位置处的元素。(检查索引合法性;复制覆盖,返回删除的数据)

     

     

      11、删除指定的元素。(不存在该元素则返回false,否则返回true)

     

     

      12、删除所有元素。

     

     更新数据的相关操作:

      13、更新指定位置处的元素。(检查索引合法性、保存旧的数据、新数据覆盖,返回旧数据)

     

     查找元素的相关操作:

      14、获取指定位置处的元素。

     

     

      15、获取指定元素的第一个索引。(不存在则返回-1)

     

     

      16、获取指定元素的倒数第一个索引。(不存在则返回-1)

     

     

      17、是否存在指定元素。

    其他相关操作:

      18、是否为空。

     

      19、集合大小。

     

     

     

      20、更改数组大小为实际元素个数的大小一样大,即size == elementData.length。

     

      4、

     

      4、

     

      3、

     

      4、

     

      3、

     

      4、

     

      3、

     

      4、

    igoodful@qq.com
  • 相关阅读:
    webstorm2018.1 汉化
    微信小程序转发微信小程序转发
    微信小程序下拉刷新和上拉加载的实现
    微信小程序基本目录结构学习
    JavaScript中闭包的写法和作用详解
    前端面试 问题汇总
    js 循环
    vue.js的手脚架vue-cli项目搭建的步骤
    js 条件判断
    数组
  • 原文地址:https://www.cnblogs.com/igoodful/p/8909505.html
Copyright © 2011-2022 走看看