类 IndexedDynamicArray<E>

java.lang.Object
cn.wjybxx.base.collection.IndexedDynamicArray<E>
所有已实现的接口:
DynamicArray<E>

public final class IndexedDynamicArray<E> extends Object implements DynamicArray<E>
元素被索引的动态数组 注意:会在元素上缓存在数组中的下标,因此indexremove系列方法总是使用引用相等查询。
作者:
wjybxx date - 2025/4/11
  • 构造器概要

    构造器
    构造器
    说明
    IndexedDynamicArray(IndexedElementHelper<? super E> helper, int initCapacity)
     
    IndexedDynamicArray(IndexedElementHelper<? super E> helper, int initCapacity, float nullFactor)
     
  • 方法概要

    修饰符和类型
    方法
    说明
    void
    add(E e)
    添加元素 不论是否正在迭代,length一定会增加。
    void
    开始迭代
    void
    清空List 注意: 1.在迭代期间调用Clear是高风险行为,会清理自身迭代范围外的数据,可能影响其它迭代逻辑。
    void
    compress(boolean force)
    压缩数组空间
    boolean
    基于equals查询一个元素是否在List中
    boolean
    判断数组是否包含Null元素,用于更快的判断是否为空。
    boolean
    基于引用相等查询一个元素是否在List中
    int
    非空元素数量,实时值。
    void
    迭代结束 -- 特殊情况下可以反复调用该接口修复状态。
    void
    ensureCapacity(int minCapacity)
    确保空间足够(减少不必要的扩容)
    void
    forEach(ObjIntConsumer<? super E> action)
    迭代数组内的元素,该快捷方式不会迭代迭代期间新增的元素
    get(int index)
    获取指定位置的元素
    int
    根据equals查询下标
    int
    根据引用相等查询下标
    void
    insert(int index, E e)
    插入元素 不论是否正在迭代,length一定会增加。
    boolean
    当前是否正在迭代
    int
    根据equals查询下标
    int
    根据引用相等查询下标
    int
    数组的当前长度
    int
    空元素数量,实时值。
    boolean
    remove(E e)
    根据equals相等删除元素 注意:不论是否正在迭代,length都可能不会变化。
    boolean
    根据引用相等删除元素 注意:不论是否正在迭代,length都可能不会变化。
    set(int index, E e)
    将给定元素赋值到给定位置
    void
    sort(Comparator<? super E> comparator)
    对数组元素进行排序 (该接口会强制压缩空间,再进行排序)
    将所有的非null元素转存到List

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • IndexedDynamicArray

      public IndexedDynamicArray(IndexedElementHelper<? super E> helper, int initCapacity)
    • IndexedDynamicArray

      public IndexedDynamicArray(IndexedElementHelper<? super E> helper, int initCapacity, float nullFactor)
  • 方法详细资料

    • isIterating

      public boolean isIterating()
      从接口复制的说明: DynamicArray
      当前是否正在迭代
      指定者:
      isIterating 在接口中 DynamicArray<E>
    • beginItr

      public void beginItr()
      从接口复制的说明: DynamicArray
      开始迭代
      指定者:
      beginItr 在接口中 DynamicArray<E>
    • endItr

      public void endItr()
      从接口复制的说明: DynamicArray
      迭代结束 -- 特殊情况下可以反复调用该接口修复状态。
      指定者:
      endItr 在接口中 DynamicArray<E>
    • get

      @Nullable public E get(int index)
      从接口复制的说明: DynamicArray
      获取指定位置的元素
      指定者:
      get 在接口中 DynamicArray<E>
      返回:
      如果指定位置的元素已删除,则返回null
    • set

      public E set(int index, @Nullable E e)
      从接口复制的说明: DynamicArray
      将给定元素赋值到给定位置
      指定者:
      set 在接口中 DynamicArray<E>
      参数:
      index - 元素下标
      e - 如果为null表示删除
      返回:
      该位置的前一个值
    • add

      public void add(E e)
      从接口复制的说明: DynamicArray
      添加元素 不论是否正在迭代,length一定会增加。
      指定者:
      add 在接口中 DynamicArray<E>
    • insert

      public void insert(int index, E e)
      从接口复制的说明: DynamicArray
      插入元素 不论是否正在迭代,length一定会增加。
      指定者:
      insert 在接口中 DynamicArray<E>
      参数:
      index - 要插入的位置,小于length
      e - 要插入的元素
    • remove

      public boolean remove(E e)
      从接口复制的说明: DynamicArray
      根据equals相等删除元素 注意:不论是否正在迭代,length都可能不会变化。
      指定者:
      remove 在接口中 DynamicArray<E>
      参数:
      e - null固定返回false
      返回:
      如果元素在集合中则删除并返回true
    • removeRef

      public boolean removeRef(E e)
      从接口复制的说明: DynamicArray
      根据引用相等删除元素 注意:不论是否正在迭代,length都可能不会变化。
      指定者:
      removeRef 在接口中 DynamicArray<E>
      参数:
      e - null固定返回false
      返回:
      如果元素在集合中则删除并返回true
    • clear

      public void clear()
      从接口复制的说明: DynamicArray
      清空List 注意: 1.在迭代期间调用Clear是高风险行为,会清理自身迭代范围外的数据,可能影响其它迭代逻辑。 2.在迭代期间清理元素不会更新length
      指定者:
      clear 在接口中 DynamicArray<E>
    • contains

      public boolean contains(E e)
      从接口复制的说明: DynamicArray
      基于equals查询一个元素是否在List中
      指定者:
      contains 在接口中 DynamicArray<E>
      参数:
      e - 要查询的元素
      返回:
      如果存在则返回true
    • containsRef

      public boolean containsRef(E e)
      从接口复制的说明: DynamicArray
      基于引用相等查询一个元素是否在List中
      指定者:
      containsRef 在接口中 DynamicArray<E>
      参数:
      e - 要查询的元素
      返回:
      如果存在则返回true
    • indexOf

      public int indexOf(@Nullable E e)
      从接口复制的说明: DynamicArray
      根据equals查询下标
      指定者:
      indexOf 在接口中 DynamicArray<E>
      参数:
      e - 要查询的元素
      返回:
      如果存在则返回对应的下标,否则返回-1
    • lastIndexOf

      public int lastIndexOf(@Nullable E e)
      从接口复制的说明: DynamicArray
      根据equals查询下标
      指定者:
      lastIndexOf 在接口中 DynamicArray<E>
      参数:
      e - 要查询的元素
      返回:
      如果存在则返回对应的下标,否则返回-1
    • indexOfRef

      public int indexOfRef(@Nullable E e)
      从接口复制的说明: DynamicArray
      根据引用相等查询下标
      指定者:
      indexOfRef 在接口中 DynamicArray<E>
      参数:
      e - 要查询的元素
      返回:
      如果存在则返回对应的下标,否则返回-1
    • lastIndexOfRef

      public int lastIndexOfRef(@Nullable E e)
      从接口复制的说明: DynamicArray
      根据引用相等查询下标
      指定者:
      lastIndexOfRef 在接口中 DynamicArray<E>
      参数:
      e - 要查询的元素
      返回:
      如果存在则返回对应的下标,否则返回-1
    • length

      public int length()
      从接口复制的说明: DynamicArray
      数组的当前长度
      指定者:
      length 在接口中 DynamicArray<E>
    • elementCount

      public int elementCount()
      从接口复制的说明: DynamicArray
      非空元素数量,实时值。 注意:该方法可能有额外的开销
      指定者:
      elementCount 在接口中 DynamicArray<E>
    • nullCount

      public int nullCount()
      从接口复制的说明: DynamicArray
      空元素数量,实时值。 注意:该方法可能有额外的开销
      指定者:
      nullCount 在接口中 DynamicArray<E>
    • containsNull

      public boolean containsNull()
      从接口复制的说明: DynamicArray
      判断数组是否包含Null元素,用于更快的判断是否为空。 注意:该方法可能有额外的开销。
      指定者:
      containsNull 在接口中 DynamicArray<E>
    • sort

      public void sort(@Nonnull Comparator<? super E> comparator)
      从接口复制的说明: DynamicArray
      对数组元素进行排序 (该接口会强制压缩空间,再进行排序)
      指定者:
      sort 在接口中 DynamicArray<E>
    • ensureCapacity

      public void ensureCapacity(int minCapacity)
      从接口复制的说明: DynamicArray
      确保空间足够(减少不必要的扩容)
      指定者:
      ensureCapacity 在接口中 DynamicArray<E>
      参数:
      minCapacity - 期望的最小空间
    • compress

      public void compress(boolean force)
      从接口复制的说明: DynamicArray
      压缩数组空间
      指定者:
      compress 在接口中 DynamicArray<E>
      参数:
      force - 是否忽略null比重
    • forEach

      public void forEach(ObjIntConsumer<? super E> action)
      从接口复制的说明: DynamicArray
      迭代数组内的元素,该快捷方式不会迭代迭代期间新增的元素
      指定者:
      forEach 在接口中 DynamicArray<E>
      参数:
      action - action接收元素和对应的下标
    • toList

      public List<E> toList()
      从接口复制的说明: DynamicArray
      将所有的非null元素转存到List
      指定者:
      toList 在接口中 DynamicArray<E>