鴻蒙OS LongPlainArray

2022-08-26 10:55 更新

LongPlainArray

java.lang.Object

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

public class LongPlainArray<E>
extends Object
implements Cloneable

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

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

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

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

字段摘要

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

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

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

方法總結(jié)

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

字段詳細信息

INVALID_INDEX

public static final int INVALID_INDEX

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

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

LongPlainArray

public LongPlainArray()

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

LongPlainArray

public LongPlainArray(int capacity)

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

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

參數(shù):

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

Throws:

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

方法詳情

locate

public int locate(long key)

搜索指定鍵的索引。

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

參數(shù):

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

返回:

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

indexOfKey

public int indexOfKey(long key)

查詢指定鍵的索引。

參數(shù):

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

返回:

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

indexOfValue

public int indexOfValue(E value)

查詢指定值的索引。

參數(shù):

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

返回:

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

Throws:

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

keyAt

public long keyAt(int index)

查詢指定索引的鍵。

參數(shù):

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

返回:

返回指定索引的鍵。

Throws:

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

valueAt

public E valueAt(int index)

查詢指定索引的值。

參數(shù):

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

返回:

返回指定索引的值。

Throws:

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

get

public OptionalE get(long key)

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

參數(shù):

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

返回:

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

get

public E get(long key, E defaultValue)

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

參數(shù):

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

返回:

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

put

public void put(long key, E value)

將鍵值對添加到 LongPlainArray。

如果指定的鍵已經(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(long key, E value)

將鍵值對附加到 LongPlainArray。

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

參數(shù):

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

Throws:

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

remove

public OptionalE remove(long key)

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

參數(shù):

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

返回:

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

removeAt

public E removeAt(int index)

刪除指定索引的鍵值對。

參數(shù):

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

返回:

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

Throws:

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

clone

public LongPlainArrayE clone()

獲取當前 LongPlainArray 對象的克隆。

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

覆蓋:

在類 Object 中克隆

返回:

返回 LongPlainArray 對象的克隆。

contains

public boolean contains(long key)

檢查當前 LongPlainArray 對象是否包含指定的鍵。

參數(shù):

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

返回:

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

clear

public void clear()

清除當前 LongPlainArray 對象。

isEmpty

public boolean isEmpty()

檢查當前 LongPlainArray 對象是否為空。

返回:

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

size

public int size()

獲取當前 LongPlainArray 中存儲的值的總數(shù)。

返回:

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

toString

public String toString()

獲取 LongPlainArray 對象的字符串格式。

返回的字符串格式符合 JSON,JSON 名稱/值對中的值由 LongPlainArray 對象中每個元素的 toString() 方法返回。

覆蓋:

類 Object 中的 toString

返回:

返回 LongPlainArray 的基于 JSON 的字符串格式。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號