鴻蒙OS PlainArray

2022-09-03 09:54 更新

PlainArray

java.lang.Object

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

public class PlainArray<E>
extends Object
implements Cloneable

一個基本集合類,用于存儲使用原始數(shù)據(jù)類型 int 作為鍵和任何對象作為值的數(shù)據(jù)結(jié)構(gòu)。

此類中的值直接存儲在數(shù)組中,無需包裝到其他類型中。 這簡化了數(shù)據(jù)存儲結(jié)構(gòu)并節(jié)省了內(nèi)存。 該類中的所有鍵值對在存儲時都是按升序排序的,使用二分查找算法高效查找指定鍵。 在這樣的數(shù)據(jù)存儲結(jié)構(gòu)中,鍵和值可以基于索引進(jìn)行迭代。 此類實現(xiàn) Cloneable 接口并支持存儲值的淺拷貝。

使用 PlainArray 類時要注意以下幾點:

  • 這個類是非線程安全的。
  • 存儲的值不能是空對象。
  • 值的存儲順序與插入時不同。

字段摘要

修飾符和類型 字段 描述
static int INVALID_INDEX 指示索引相關(guān)操作使用的無效索引。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
PlainArray() 用于創(chuàng)建具有初始容量的 PlainArray 實例的構(gòu)造函數(shù)。
PlainArray(int capacity) 用于創(chuàng)建具有自定義初始容量的 PlainArray 實例的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型 方法 描述
void append(int key, E value) 將鍵值對附加到 PlainArray。
void clear() 清除當(dāng)前的 PlainArray 對象。
PlainArrayE clone() 獲取當(dāng)前 PlainArray 對象的克隆。
boolean contains(int key) 檢查當(dāng)前的 PlainArray 對象是否包含指定的鍵。
OptionalE get(int key) 查詢與指定鍵關(guān)聯(lián)的值。
E get(int key, E defaultValue) 使用傳遞的 defaultValue 參數(shù)查詢與指定鍵關(guān)聯(lián)的值。
int indexOfKey(int key) 查詢指定鍵的索引。
int indexOfValue(E value) 查詢指定值的索引。
boolean isEmpty() 檢查當(dāng)前 PlainArray 對象是否為空。
int keyAt(int index) 查詢指定索引處的鍵。
int locate(int key) 搜索指定鍵的索引。
void put(int key, E value) 向 PlainArray 添加一個鍵值對。
OptionalE remove(int key) 根據(jù)指定鍵刪除鍵值對。
OptionalE removeAt(int index) 刪除指定索引處的鍵值對。
int removeBatchAt(int index, int batchSize) 從指定索引中刪除一定大小的批量鍵值對。
void setValueAt(int index, E value) 更新指定索引的值。
int size() 獲取當(dāng)前 PlainArray 中存儲的值的總數(shù)。
String toString() 獲取 PlainArray 對象的字符串表示形式。
E valueAt(int index) 查詢指定索引處的值。
從類 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

字段詳細(xì)信息

INVALID_INDEX

public static final int INVALID_INDEX

指示索引相關(guān)操作使用的無效索引。

構(gòu)造函數(shù)詳細(xì)信息

PlainArray

public PlainArray()

用于創(chuàng)建具有初始容量的 PlainArray 實例的構(gòu)造函數(shù)。

PlainArray

public PlainArray(int capacity)

用于創(chuàng)建具有自定義初始容量的 PlainArray 實例的構(gòu)造函數(shù)。

此構(gòu)造函數(shù)允許您自定義 PlainArray 對象的初始容量。

參數(shù):

參數(shù)名稱 參數(shù)描述
capacity 指示要為對象自定義的初始容量。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果指定的容量小于或等于 0,則引發(fā)此異常。

方法詳情

clone

public PlainArrayE clone()

獲取當(dāng)前 PlainArray 對象的克隆。

請注意,存儲在數(shù)組中的值是淺拷貝的。

覆蓋:

在類 Object 中克隆

返回:

返回 PlainArray 對象的克隆。

locate

public int locate(int key)

搜索指定鍵的索引。

二分搜索算法用于搜索。 如果沒有找到結(jié)果,則返回負(fù)值。 但是,您可以將此負(fù)值取反以獲取該鍵應(yīng)存儲在數(shù)組中的索引。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要搜索的鍵。

返回:

返回鍵的索引; 如果沒有找到結(jié)果,則返回負(fù)值。

put

public void put(int key, E value)

向 PlainArray 添加一個鍵值對。

如果指定的鍵已經(jīng)存在,它的值將被替換為值。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要添加的鍵。
value 指示與鍵關(guān)聯(lián)的值。

Throws:

Throw名稱 Throw描述
NullPointerException 如果值為 null,則引發(fā)此異常。

setValueAt

public void setValueAt(int index, E value)

更新指定索引的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 指示要插入的索引。
value 指示與鍵關(guān)聯(lián)的值。

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范圍,則引發(fā)此異常。
NullPointerException 如果指定值為 null,則引發(fā)此異常。

append

public void append(int key, E value)

將鍵值對附加到 PlainArray。

如果要添加的鍵大于數(shù)組中的任何現(xiàn)有鍵,則此方法比 put(int,java.lang.Object) 方法更有效。 如果指定的鍵不是數(shù)組中最大的鍵,則自動調(diào)用 put(int,java.lang.Object) 方法添加鍵值對。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要添加的鍵。
value 指示與鍵關(guān)聯(lián)的值。

Throws:

Throw名稱 Throw描述
NullPointerException 如果值為 null,則引發(fā)此異常。

clear

public void clear()

清除當(dāng)前的 PlainArray 對象。

keyAt

public int keyAt(int index)

查詢指定索引處的鍵。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 表示要查詢的索引。

返回:

返回指定索引的鍵。

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范圍,則引發(fā)此異常。

remove

public OptionalE remove(int key)

根據(jù)指定鍵刪除鍵值對。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要刪除的密鑰。

返回:

返回一個包含已移除值的 Optional 對象; 如果 key 不存在,則返回一個空的 Optional 對象。

removeAt

public OptionalE removeAt(int index)

刪除指定索引處的鍵值對。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 表示要移除的鍵值對的索引。

返回:

返回一個封裝了已移除值的 Optional 對象。

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范圍,則引發(fā)此異常。

removeBatchAt

public int removeBatchAt(int index, int batchSize)

從指定索引中刪除一定大小的批量鍵值對。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 表示要移除的鍵值對的索引。
batchSize 指示要刪除的批次大小。

返回:

返回已刪除值的總數(shù)。

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范圍,則引發(fā)此異常。
IllegalArgumentException 如果指定的 batchSize 小于 1,則拋出此異常。

get

public OptionalE get(int key)

查詢與指定鍵關(guān)聯(lián)的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要查詢的值的鍵。

返回:

返回一個包含獲得值的 Optional 對象; 如果 key 不存在,則返回一個空的 Optional 對象。

get

public E get(int key, E defaultValue)

使用傳遞的 defaultValue 參數(shù)查詢與指定鍵關(guān)聯(lián)的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要查詢的值的鍵。
defaultValue 表示默認(rèn)值。

返回:

返回鍵的值; 如果鍵不存在,則返回 defaultValue。

valueAt

public E valueAt(int index)

查詢指定索引處的值。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 指示要查詢的值的索引。

返回:

返回指定索引的值。

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范圍,則引發(fā)此異常。

indexOfKey

public int indexOfKey(int key)

查詢指定鍵的索引。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要查詢的鍵。

返回:

返回鍵的索引; 如果查詢的鍵不存在,則返回 INVALID_INDEX。

indexOfValue

public int indexOfValue(E value)

查詢指定值的索引。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 表示要查詢的值。

返回:

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

Throws:

Throw名稱 Throw描述
NullPointerException 如果查詢的值為 null,則拋出此異常。

size

public int size()

獲取當(dāng)前 PlainArray 中存儲的值的總數(shù)。

返回:

返回存儲值的總數(shù)。

isEmpty

public boolean isEmpty()

檢查當(dāng)前 PlainArray 對象是否為空。

返回:

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

contains

public boolean contains(int key)

檢查當(dāng)前的 PlainArray 對象是否包含指定的鍵。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要檢查的鍵。

返回:

如果指定的鍵存在,則返回 true; 否則返回 false。

toString

public String toString()

獲取 PlainArray 對象的字符串表示形式。

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

覆蓋:

類 Object 中的 toString

返回:

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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號