codecamp

鸿蒙OS PlainArray

PlainArray

java.lang.Object

|---ohos.utils.PlainArray<E&

public class PlainArray<E>
extends Object
implements Cloneable

一个基本集合类,用于存储使用原始数据类型 int 作为键和任何对象作为值的数据结构。

此类中的值直接存储在数组中,无需包装到其他类型中。 这简化了数据存储结构并节省了内存。 该类中的所有键值对在存储时都是按升序排序的,使用二分查找算法高效查找指定键。 在这样的数据存储结构中,键和值可以基于索引进行迭代。 此类实现 Cloneable 接口并支持存储值的浅拷贝。

使用 PlainArray 类时要注意以下几点:

  • 这个类是非线程安全的。
  • 存储的值不能是空对象。
  • 值的存储顺序与插入时不同。

字段摘要

修饰符和类型 字段 描述
static int INVALID_INDEX 指示索引相关操作使用的无效索引。

构造函数摘要

构造函数 描述
PlainArray() 用于创建具有初始容量的 PlainArray 实例的构造函数。
PlainArray(int capacity) 用于创建具有自定义初始容量的 PlainArray 实例的构造函数。

方法总结

修饰符和类型 方法 描述
void append(int key, E value) 将键值对附加到 PlainArray。
void clear() 清除当前的 PlainArray 对象。
PlainArrayE clone() 获取当前 PlainArray 对象的克隆。
boolean contains(int key) 检查当前的 PlainArray 对象是否包含指定的键。
OptionalE get(int key) 查询与指定键关联的值。
E get(int key, E defaultValue) 使用传递的 defaultValue 参数查询与指定键关联的值。
int indexOfKey(int key) 查询指定键的索引。
int indexOfValue(E value) 查询指定值的索引。
boolean isEmpty() 检查当前 PlainArray 对象是否为空。
int keyAt(int index) 查询指定索引处的键。
int locate(int key) 搜索指定键的索引。
void put(int key, E value) 向 PlainArray 添加一个键值对。
OptionalE remove(int key) 根据指定键删除键值对。
OptionalE removeAt(int index) 删除指定索引处的键值对。
int removeBatchAt(int index, int batchSize) 从指定索引中删除一定大小的批量键值对。
void setValueAt(int index, E value) 更新指定索引的值。
int size() 获取当前 PlainArray 中存储的值的总数。
String toString() 获取 PlainArray 对象的字符串表示形式。
E valueAt(int index) 查询指定索引处的值。
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

字段详细信息

INVALID_INDEX

public static final int INVALID_INDEX

指示索引相关操作使用的无效索引。

构造函数详细信息

PlainArray

public PlainArray()

用于创建具有初始容量的 PlainArray 实例的构造函数。

PlainArray

public PlainArray(int capacity)

用于创建具有自定义初始容量的 PlainArray 实例的构造函数。

此构造函数允许您自定义 PlainArray 对象的初始容量。

参数:

参数名称 参数描述
capacity 指示要为对象自定义的初始容量。

Throws:

Throw名称 Throw描述
IllegalArgumentException 如果指定的容量小于或等于 0,则引发此异常。

方法详情

clone

public PlainArrayE clone()

获取当前 PlainArray 对象的克隆。

请注意,存储在数组中的值是浅拷贝的。

覆盖:

在类 Object 中克隆

返回:

返回 PlainArray 对象的克隆。

locate

public int locate(int key)

搜索指定键的索引。

二分搜索算法用于搜索。 如果没有找到结果,则返回负值。 但是,您可以将此负值取反以获取该键应存储在数组中的索引。

参数:

参数名称 参数描述
key 表示要搜索的键。

返回:

返回键的索引; 如果没有找到结果,则返回负值。

put

public void put(int key, E value)

向 PlainArray 添加一个键值对。

如果指定的键已经存在,它的值将被替换为值。

参数:

参数名称 参数描述
key 表示要添加的键。
value 指示与键关联的值。

Throws:

Throw名称 Throw描述
NullPointerException 如果值为 null,则引发此异常。

setValueAt

public void setValueAt(int index, E value)

更新指定索引的值。

参数:

参数名称 参数描述
index 指示要插入的索引。
value 指示与键关联的值。

Throws:

Throw名称 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范围,则引发此异常。
NullPointerException 如果指定值为 null,则引发此异常。

append

public void append(int key, E value)

将键值对附加到 PlainArray。

如果要添加的键大于数组中的任何现有键,则此方法比 put(int,java.lang.Object) 方法更有效。 如果指定的键不是数组中最大的键,则自动调用 put(int,java.lang.Object) 方法添加键值对。

参数:

参数名称 参数描述
key 表示要添加的键。
value 指示与键关联的值。

Throws:

Throw名称 Throw描述
NullPointerException 如果值为 null,则引发此异常。

clear

public void clear()

清除当前的 PlainArray 对象。

keyAt

public int keyAt(int index)

查询指定索引处的键。

参数:

参数名称 参数描述
index 表示要查询的索引。

返回:

返回指定索引的键。

Throws:

Throw名称 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范围,则引发此异常。

remove

public OptionalE remove(int key)

根据指定键删除键值对。

参数:

参数名称 参数描述
key 表示要删除的密钥。

返回:

返回一个包含已移除值的 Optional 对象; 如果 key 不存在,则返回一个空的 Optional 对象。

removeAt

public OptionalE removeAt(int index)

删除指定索引处的键值对。

参数:

参数名称 参数描述
index 表示要移除的键值对的索引。

返回:

返回一个封装了已移除值的 Optional 对象。

Throws:

Throw名称 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范围,则引发此异常。

removeBatchAt

public int removeBatchAt(int index, int batchSize)

从指定索引中删除一定大小的批量键值对。

参数:

参数名称 参数描述
index 表示要移除的键值对的索引。
batchSize 指示要删除的批次大小。

返回:

返回已删除值的总数。

Throws:

Throw名称 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范围,则引发此异常。
IllegalArgumentException 如果指定的 batchSize 小于 1,则抛出此异常。

get

public OptionalE get(int key)

查询与指定键关联的值。

参数:

参数名称 参数描述
key 表示要查询的值的键。

返回:

返回一个包含获得值的 Optional 对象; 如果 key 不存在,则返回一个空的 Optional 对象。

get

public E get(int key, E defaultValue)

使用传递的 defaultValue 参数查询与指定键关联的值。

参数:

参数名称 参数描述
key 表示要查询的值的键。
defaultValue 表示默认值。

返回:

返回键的值; 如果键不存在,则返回 defaultValue。

valueAt

public E valueAt(int index)

查询指定索引处的值。

参数:

参数名称 参数描述
index 指示要查询的值的索引。

返回:

返回指定索引的值。

Throws:

Throw名称 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范围,则引发此异常。

indexOfKey

public int indexOfKey(int key)

查询指定键的索引。

参数:

参数名称 参数描述
key 表示要查询的键。

返回:

返回键的索引; 如果查询的键不存在,则返回 INVALID_INDEX。

indexOfValue

public int indexOfValue(E value)

查询指定值的索引。

参数:

参数名称 参数描述
value 表示要查询的值。

返回:

返回值的索引; 如果查询的值不存在,则返回 INVALID_INDEX。

Throws:

Throw名称 Throw描述
NullPointerException 如果查询的值为 null,则抛出此异常。

size

public int size()

获取当前 PlainArray 中存储的值的总数。

返回:

返回存储值的总数。

isEmpty

public boolean isEmpty()

检查当前 PlainArray 对象是否为空。

返回:

如果不包含任何值,则返回 true; 否则返回 false。

contains

public boolean contains(int key)

检查当前的 PlainArray 对象是否包含指定的键。

参数:

参数名称 参数描述
key 表示要检查的键。

返回:

如果指定的键存在,则返回 true; 否则返回 false。

toString

public String toString()

获取 PlainArray 对象的字符串表示形式。

返回的字符串表示是 JSON 兼容的,JSON 名称/值对中的值由 PlainArray 对象中每个元素的 toString() 方法返回

覆盖:

类 Object 中的 toString

返回:

返回 PlainArray 的基于 JSON 的字符串表示。

鸿蒙OS PersistablePacMap
鸿蒙OS PlainBooleanArray
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }