阅读(1056) (0)

鸿蒙OS LightweightSet

2022-08-16 15:14:48 更新

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 容器中由索引标识的对象。