鸿蒙OS LightweightSet
LightweightSet
java.lang.Object
|---ohos.utils.LightweightSet<E&
public final class LightweightSet<E>
extends Object
implements Collection<E>, Set<E>
提供一个实现 Collection 和 Set 接口的容器。
LightweightSet 容器使用的内存比 HashSet 容器少,但在达到较大尺寸时可能会表现出较差的性能。
建议您在需要较少内存时使用此容器。
注意:只有从 LightweightSet 容器中读取数据时,线程才是安全的。
构造函数摘要
构造函数 | 描述 |
---|---|
LightweightSet() | 构造一个默认的 LightweightSet 容器。 |
LightweightSet(int capacity) | 构造一个具有指定容量的 LightweightSet 容器。 |
LightweightSet(int capacity, boolean useIdentityHash) | 构造一个具有指定容量的 LightweightSet 容器,并指定是否使用系统哈希方法来映射键。 |
LightweightSet(LightweightSet<? extends E> srcLightweightSet) | 使用现有的 LightweightSet 容器构造一个新的 LightweightSet 容器。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
boolean | add(E element) | 将指定的元素对象添加到 LightweightSet 容器。 |
boolean | addAll(Collection<? extends E> collection) | 将指定 Collection 中的所有对象添加到 LightweightSet 容器。 |
boolean | addAll(LightweightSet<? extends E> array) | 将指定 LightweightSet 容器中的所有对象添加到当前 LightweightSet 容器中。 |
void | clear() | 清除 LightweightSet 容器。 |
boolean | contains(Object key) | 检查 LightweightSet 容器是否具有指定的键。 |
boolean | containsAll(Collection<?> collection) | 检查 LightweightSet 容器是否具有指定 Collection 的所有对象。 |
void | ensureCapacity(int minimumCapacity) | 保证 LightweightSet 容器的容量大于等于指定值,并且容器扩容后拥有所有原始对象。 |
boolean | equals(Object obj) | 检查 LightweightSet 容器的对象是否与指定的 Object 属于同一类型。 |
int | hashCode() | 获取 LightweightSet 容器的哈希值。 |
int | indexOf(Object key) | 获取LightweightSet容器中指定Object类型的key的索引。 |
boolean | isEmpty() | 检查 LightweightSet 容器是否没有对象。 |
IteratorE | iterator() | 获取一个可以操作LightweightSet容器的Iterator。 |
boolean | remove(Object obj) | 从 LightweightSet 容器中删除指定 Object 类型的对象。 |
boolean | removeAll(Collection<?> collection) | 从 LightweightSet 容器中删除指定 Collection 中包含的所有对象。 |
boolean | removeAll(LightweightSet<? extends E> array) | 从 LightweightSet 容器中删除指定 LightweightSet 容器中包含的所有对象。 |
E | removeAt(int index) | 从 LightweightSet 容器中删除由 index 标识的位置处的对象。 |
boolean | retainAll(Collection<?> collection) | 从 LightweightSet 容器中删除指定 Collection 中不存在的对象。 |
int | size() | 获取 LightweightSet 容器中的对象数。 |
Object[] | toArray() | 获取一个包含 LightweightSet 容器的所有对象的数组。 |
<T> T[] | toArray(T[] array) | 获取一个包含 LightweightSet 容器的所有对象的数组。 |
String | toString() | 获取包含 LightweightSet 容器的所有对象的字符串。 |
E | valueAt(int index) | 获取 LightweightSet 容器中由 index 标识的位置处的对象。 |
E | valueAt(int index, E defaultKey) | 获取 LightweightSet 容器中由 index 标识的位置处的对象。 |
从接口 java.util.Collection 继承的方法 |
---|
parallelStream, removeIf, stream |
从接口 java.lang.Iterable 继承的方法 |
---|
forEach |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
从接口 java.util.Set 继承的方法 |
---|
spliterator |
构造函数详细信息
LightweightSet
public LightweightSet()
构造一个默认的 LightweightSet 容器。
LightweightSet
public LightweightSet(int capacity)
构造一个具有指定容量的 LightweightSet 容器。
参数:
参数名称 | 参数描述 |
---|---|
capacity | 表示要构建的 LightweightSet 容器的容量。 |
LightweightSet
public LightweightSet(int capacity, boolean useIdentityHash)
构造一个具有指定容量的 LightweightSet 容器,并指定是否使用系统哈希方法来映射键。
参数:
参数名称 | 参数描述 |
---|---|
capacity | 表示要构建的 LightweightSet 容器的容量。 |
useIdentityHash | 指定是否使用系统哈希方法来映射键。 值 true 表示使用 System.identityHashCode 方法。 值 false 表示使用默认的 hashCode 方法。 |
LightweightSet
public LightweightSet(LightweightSet<? extends E> srcLightweightSet)
使用现有的 LightweightSet 容器构造一个新的 LightweightSet 容器。
参数:
参数名称 | 参数描述 |
---|---|
srcLightweightSet | 指示现有的 LightweightSet 容器。 |
方法详情
add
public boolean add(E element)
将指定的元素对象添加到 LightweightSet 容器。
指定者:
添加接口CollectionE
指定者:
添加接口SetE
参数:
参数名称 | 参数描述 |
---|---|
element | 表示要添加的元素对象。 |
返回:
如果添加了元素对象,则返回 true; 如果元素对象已存在于 LightweightSet 容器中,则返回 false。
addAll
public boolean addAll(LightweightSet<? extends E> array)
将指定 LightweightSet 容器中的所有对象添加到当前 LightweightSet 容器中。
在添加对象之前,会检查并保证当前 LightweightSet 容器的容量。
参数:
参数名称 | 参数描述 |
---|---|
array | 表示指定的 LightweightSet 容器,其对象要添加到当前 LightweightSet 容器中。 |
返回:
如果有任何对象被添加到当前容器中,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果数组为空,则抛出此异常。 |
addAll
public boolean addAll(Collection<? extends E> collection)
将指定 Collection 中的所有对象添加到 LightweightSet 容器。
指定者:
接口 CollectionE 中的 addAll
指定者:
接口 SetE 中的 addAll
参数:
参数名称 | 参数描述 |
---|---|
collection | 指示要将其对象添加到 LightweightSet 容器的 Collection。 |
返回:
如果将任何对象添加到容器中,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果集合为空,则引发此异常。 |
clear
public void clear()
清除 LightweightSet 容器。
此方法使 LightweightSet 容器为空。
指定者:
在界面 CollectionE 中清除
指定者:
在接口 SetE 中清除
contains
public boolean contains(Object key)
检查 LightweightSet 容器是否具有指定的键。
指定者:
包含在接口 CollectionE 中
指定者:
包含在接口 SetE 中
参数:
参数名称 | 参数描述 |
---|---|
key | 表示指定的键。 |
返回:
如果 LightweightSet 容器具有指定的键,则返回 true; 否则返回 false。
containsAll
public boolean containsAll(Collection<?> collection)
检查 LightweightSet 容器是否具有指定 Collection 的所有对象。
指定者:
接口 CollectionE 中的 containsAll
指定者:
接口 SetE 中的 containsAll
参数:
参数名称 | 参数描述 |
---|---|
collection | 表示指定的集合。 |
返回:
如果 LightweightSet 容器具有指定 Collection 的所有对象,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果集合为空,则引发此异常。 |
ensureCapacity
public void ensureCapacity(int minimumCapacity)
保证 LightweightSet 容器的容量大于等于指定值,并且容器扩容后拥有所有原始对象。
参数:
参数名称 | 参数描述 |
---|---|
minimumCapacity | 指示 LightweightSet 容器允许的最小容量。 |
equals
public boolean equals(Object obj)
检查 LightweightSet 容器的对象是否与指定的 Object 属于同一类型。
指定者:
接口 CollectionE 中的等于
指定者:
接口 SetE 中的等于
覆盖:
类 Object 中的等于
参数:
参数名称 | 参数描述 |
---|---|
obj | 指示要与 LightweightSet 容器的对象进行比较的 Object。 |
返回:
如果 LightweightSet 容器的对象与指定 Object 的类型相同,则返回 true; 否则返回 false。
hashCode
public int hashCode()
获取 LightweightSet 容器的哈希值。
哈希值是 LightweightSet 容器的所有对象的哈希值之和。
如果 LightweightSet 容器没有对象,则哈希值为 0。
指定者:
接口 CollectionE 中的 hashCode
指定者:
接口 SetE 中的 hashCode
覆盖:
类 Object 中的 hashCode
返回:
返回 LightweightSet 容器的哈希值。
indexOf
public int indexOf(Object key)
获取LightweightSet容器中指定Object类型的key的索引。
参数:
参数名称 | 参数描述 |
---|---|
key | 表示指定Object类型的key。 |
返回:
以 int 格式返回键的索引。
isEmpty
public boolean isEmpty()
检查 LightweightSet 容器是否没有对象。
指定者:
接口 CollectionE 中的 isEmpty
指定者:
接口 SetE 中的 isEmpty
返回:
如果 LightweightSet 容器没有对象,则返回 true; 否则返回 false。
iterator
public IteratorE iterator()
获取一个可以操作LightweightSet容器的Iterator。
指定者:
接口 CollectionE 中的迭代器
指定者:
接口 IterableE 中的迭代器
指定者:
接口 SetE 中的迭代器
返回:
返回一个可以操作 LightweightSet 容器的 Iterator。
remove
public boolean remove(Object obj)
从 LightweightSet 容器中删除指定 Object 类型的对象。
指定者:
在接口 CollectionE 中删除
指定者:
在接口 SetE 中删除
参数:
参数名称 | 参数描述 |
---|---|
obj | 表示要删除的对象。 |
返回:
如果对象从 LightweightSet 容器中删除,则返回 true; 如果 LightweightSet 容器中不存在该对象,则返回 false。
removeAll
public boolean removeAll(LightweightSet<? extends E> array)
从 LightweightSet 容器中删除指定 LightweightSet 容器中包含的所有对象。
参数:
参数名称 | 参数描述 |
---|---|
array | 表示指定的 LightweightSet 容器。 |
返回:
如果从 LightweightSet 容器中删除任何对象,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果数组为空,则抛出此异常。 |
removeAll
public boolean removeAll(Collection<?> collection)
从 LightweightSet 容器中删除指定 Collection 中包含的所有对象。
指定者:
接口 CollectionE 中的 removeAll
指定者:
接口 SetE 中的 removeAll
参数:
参数名称 | 参数描述 |
---|---|
collection | 表示指定的集合。 |
返回:
如果从 LightweightSet 容器中删除任何对象,则返回 true; 否则返回 false。
removeAt
public E removeAt(int index)
从 LightweightSet 容器中删除由 index 标识的位置处的对象。
如果 index 为负数,则从反方向定位对象。
在删除过程中,系统会判断 LightweightSet 容器的容量是扩容还是缩容。 如果容器中的对象数量小于指定数量,系统会减少容器的容量。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识对象的位置。 |
返回:
返回由索引标识的对象。
retainAll
public boolean retainAll(Collection<?> collection)
从 LightweightSet 容器中删除指定 Collection 中不存在的对象。
指定者:
接口CollectionE中的retainAll
指定者:
接口SetE中的retainAll
参数:
参数名称 | 参数描述 |
---|---|
collection | 表示指定的集合。 |
返回:
如果从 LightweightSet 容器中删除任何对象,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果集合为空,则引发此异常。 |
toString
public String toString()
获取包含 LightweightSet 容器的所有对象的字符串。
示例字符串是“{1, 2}”。
LightweightSet 容器中的对象必须支持 toString 方法。
覆盖:
类 Object 中的 toString
返回:
返回一个包含 LightweightSet 容器的所有对象的字符串。
size
public int size()
获取 LightweightSet 容器中的对象数。
指定者:
接口 CollectionE 中的大小
指定者:
接口 SetE 中的大小
返回:
返回 LightweightSet 容器中的对象数。
toArray
public Object[] toArray()
获取一个包含 LightweightSet 容器的所有对象的数组。
指定者:
接口 CollectionE 中的 toArray
指定者:
接口 SetE 中的 toArray
返回:
返回一个数组,其中包含 LightweightSet 容器的所有对象。
toArray
public <T> T[] toArray(T[] array)
获取一个包含 LightweightSet 容器的所有对象的数组。
如果输入数组的容量不足,将使用容量充足的新数组。
指定者:
接口 CollectionE 中的 toArray
指定者:
接口 SetE 中的 toArray
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
T | 包含集合的数组的运行时类型 |
参数:
参数名称 | 参数描述 |
---|---|
array | 表示存储LightweightSet容器所有对象的数组。 |
返回:
返回一个数组,其中包含 LightweightSet 容器的所有对象。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果数组为空,则抛出此异常。 |
valueAt
public E valueAt(int index)
获取 LightweightSet 容器中由 index 标识的位置处的对象。
如果 index 为负数,则从反方向定位对象。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识对象的位置。 |
返回:
返回 LightweightSet 容器中由索引标识的对象。
valueAt
public E valueAt(int index, E defaultKey)
获取 LightweightSet 容器中由 index 标识的位置处的对象。
如果 index 为负数,则从反方向定位对象。
如果索引无效(例如大于 LightweightSet 容器中的对象个数或小于 0),则返回 defaultKey。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识对象的位置。 |
defaultKey | 表示指定索引无效时返回的默认值。 |
返回:
返回 LightweightSet 容器中由索引标识的对象。