java.lang.Object
cn.wjybxx.base.collection.SmallDynamicArray<E>
- 所有已实现的接口:
DynamicArray<E>
小型动态数组,最大支持64个监听器。
适合监听器列表这样的场景,一个事件的监听器通常是比较少的。
null元素比重
如果等于0,则总是压缩空间;如果等于1,则全为null才压缩空间;如果大于1,则表示不主动压缩空间;- 作者:
- wjybxx date - 2025/4/11
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明void添加元素 不论是否正在迭代,length一定会增加。voidbeginItr()开始迭代voidclear()清空List 注意: 1.在迭代期间调用Clear是高风险行为,会清理自身迭代范围外的数据,可能影响其它迭代逻辑。voidcompress(boolean ignoreFactor) 压缩数组空间boolean基于equals查询一个元素是否在List中boolean判断数组是否包含Null元素,用于更快的判断是否为空。booleancontainsRef(E e) 基于引用相等查询一个元素是否在List中int非空元素数量,实时值。voidendItr()迭代结束 -- 特殊情况下可以反复调用该接口修复状态。voidensureCapacity(int minCapacity) 确保空间足够(减少不必要的扩容)voidforEach(ObjIntConsumer<? super E> action) 迭代数组内的元素,该快捷方式不会迭代迭代期间新增的元素get(int index) 获取指定位置的元素int根据equals查询下标intindexOfRef(E e) 根据引用相等查询下标void插入元素 不论是否正在迭代,length一定会增加。boolean当前是否正在迭代intlastIndexOf(E e) 根据equals查询下标intlastIndexOfRef(E e) 根据引用相等查询下标intlength()数组的当前长度int空元素数量,实时值。boolean根据equals相等删除元素 注意:不论是否正在迭代,length都可能不会变化。boolean根据引用相等删除元素 注意:不论是否正在迭代,length都可能不会变化。将给定元素赋值到给定位置voidsort(Comparator<? super E> comparator) 对数组元素进行排序 (该接口会强制压缩空间,再进行排序)toList()将所有的非null元素转存到List
-
构造器详细资料
-
SmallDynamicArray
public SmallDynamicArray(int initCapacity) -
SmallDynamicArray
public SmallDynamicArray(int initCapacity, float nullFactor) - 参数:
initCapacity- 初始空间大小nullFactor- null元素的比重
-
-
方法详细资料
-
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
从接口复制的说明:DynamicArray获取指定位置的元素- 指定者:
get在接口中DynamicArray<E>- 返回:
- 如果指定位置的元素已删除,则返回null
-
set
从接口复制的说明:DynamicArray将给定元素赋值到给定位置- 指定者:
set在接口中DynamicArray<E>- 参数:
index- 元素下标e- 如果为null表示删除- 返回:
- 该位置的前一个值
-
add
从接口复制的说明:DynamicArray添加元素 不论是否正在迭代,length一定会增加。- 指定者:
add在接口中DynamicArray<E>
-
insert
从接口复制的说明:DynamicArray插入元素 不论是否正在迭代,length一定会增加。- 指定者:
insert在接口中DynamicArray<E>- 参数:
index- 要插入的位置,小于lengthe- 要插入的元素
-
remove
从接口复制的说明:DynamicArray根据equals相等删除元素 注意:不论是否正在迭代,length都可能不会变化。- 指定者:
remove在接口中DynamicArray<E>- 参数:
e- null固定返回false- 返回:
- 如果元素在集合中则删除并返回true
-
removeRef
从接口复制的说明:DynamicArray根据引用相等删除元素 注意:不论是否正在迭代,length都可能不会变化。- 指定者:
removeRef在接口中DynamicArray<E>- 参数:
e- null固定返回false- 返回:
- 如果元素在集合中则删除并返回true
-
clear
public void clear()从接口复制的说明:DynamicArray清空List 注意: 1.在迭代期间调用Clear是高风险行为,会清理自身迭代范围外的数据,可能影响其它迭代逻辑。 2.在迭代期间清理元素不会更新length- 指定者:
clear在接口中DynamicArray<E>
-
contains
从接口复制的说明:DynamicArray基于equals查询一个元素是否在List中- 指定者:
contains在接口中DynamicArray<E>- 参数:
e- 要查询的元素- 返回:
- 如果存在则返回true
-
containsRef
从接口复制的说明:DynamicArray基于引用相等查询一个元素是否在List中- 指定者:
containsRef在接口中DynamicArray<E>- 参数:
e- 要查询的元素- 返回:
- 如果存在则返回true
-
indexOf
从接口复制的说明:DynamicArray根据equals查询下标- 指定者:
indexOf在接口中DynamicArray<E>- 参数:
e- 要查询的元素- 返回:
- 如果存在则返回对应的下标,否则返回-1
-
lastIndexOf
从接口复制的说明:DynamicArray根据equals查询下标- 指定者:
lastIndexOf在接口中DynamicArray<E>- 参数:
e- 要查询的元素- 返回:
- 如果存在则返回对应的下标,否则返回-1
-
indexOfRef
从接口复制的说明:DynamicArray根据引用相等查询下标- 指定者:
indexOfRef在接口中DynamicArray<E>- 参数:
e- 要查询的元素- 返回:
- 如果存在则返回对应的下标,否则返回-1
-
lastIndexOfRef
从接口复制的说明: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
从接口复制的说明:DynamicArray对数组元素进行排序 (该接口会强制压缩空间,再进行排序)- 指定者:
sort在接口中DynamicArray<E>
-
ensureCapacity
public void ensureCapacity(int minCapacity) 从接口复制的说明:DynamicArray确保空间足够(减少不必要的扩容)- 指定者:
ensureCapacity在接口中DynamicArray<E>- 参数:
minCapacity- 期望的最小空间
-
compress
public void compress(boolean ignoreFactor) 从接口复制的说明:DynamicArray压缩数组空间- 指定者:
compress在接口中DynamicArray<E>- 参数:
ignoreFactor- 是否忽略null比重
-
forEach
从接口复制的说明:DynamicArray迭代数组内的元素,该快捷方式不会迭代迭代期间新增的元素- 指定者:
forEach在接口中DynamicArray<E>- 参数:
action- action接收元素和对应的下标
-
toList
从接口复制的说明:DynamicArray将所有的非null元素转存到List- 指定者:
toList在接口中DynamicArray<E>
-