0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS 非線性容器特性及使用場(chǎng)景

王程 ? 來源:jf_75796907 ? 作者:jf_75796907 ? 2024-02-19 20:23 ? 次閱讀

HarmonyOS 非線性容器特性及使用場(chǎng)景

非線性容器實(shí)現(xiàn)能快速查找的數(shù)據(jù)結(jié)構(gòu),其底層通過 hash 或者紅黑樹實(shí)現(xiàn),包括 HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray 七種。非線性容器中的 key 及 value 的類型均滿足 ECMA 標(biāo)準(zhǔn)。

HashMap

HashMap 可用來存儲(chǔ)具有關(guān)聯(lián)關(guān)系的 key-value 鍵值對(duì)集合,存儲(chǔ)元素中 key 是唯一的,每個(gè) key 會(huì)對(duì)應(yīng)一個(gè) value 值。

HashMap 依據(jù)泛型定義,集合中通過 key 的 hash 值確定其存儲(chǔ)位置,從而快速找到鍵值對(duì)。HashMap 的初始容量大小為 16,并支持動(dòng)態(tài)擴(kuò)容,每次擴(kuò)容大小為原始容量的 2 倍。HashMap 底層基于 HashTable 實(shí)現(xiàn),沖突策略采用鏈地址法。

HashMap 和 TreeMap 相比,HashMap 依據(jù)鍵的 hashCode 存取數(shù)據(jù),訪問速度較快。而 TreeMap 是有序存取,效率較低。

HashSet 基于 HashMap 實(shí)現(xiàn)。HashMap 的輸入參數(shù)由 key、value 兩個(gè)值組成。在 HashSet 中,只對(duì) value 對(duì)象進(jìn)行處理。

需要快速存取、刪除以及插入鍵值對(duì)數(shù)據(jù)時(shí),推薦使用 HashMap。

HashMap 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 set (key: K, value: V) 函數(shù)每次在 HashMap 增加一個(gè)鍵值對(duì)。
訪問元素 通過 get (key: K) 獲取 key 對(duì)應(yīng)的 value 值。
通過 keys () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 key 值。
通過 values () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 value 值。
通過 entries () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有鍵值對(duì)。
forEach (callbackFn: (value?: V, key?: K, map?: HashMap) => void, thisArg?: Object) 訪問整個(gè) map 的元素。
通過 Symbol.iterator:IterableIterator<[K,V]> 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 replace (key: K, newValue: V) 對(duì)指定 key 對(duì)應(yīng)的 value 值進(jìn)行修改操作。
通過 forEach (callbackFn: (value?: V, key?: K, map?: HashMap) => void, thisArg?: Object) 對(duì) map 中元素進(jìn)行修改操作。
刪除元素 通過 remove (key: K) 對(duì) map 中匹配到的鍵值對(duì)進(jìn)行刪除操作。
通過 clear () 清空整個(gè) map 集合。

HashSet

HashSet 可用來存儲(chǔ)一系列值的集合,存儲(chǔ)元素中 value 是唯一的。

HashSet 依據(jù)泛型定義,集合中通過 value 的 hash 值確定其存儲(chǔ)位置,從而快速找到該值。HashSet 初始容量大小為 16,支持動(dòng)態(tài)擴(kuò)容,每次擴(kuò)容大小為原始容量的 2 倍。value 的類型滿足 ECMA 標(biāo)準(zhǔn)中要求的類型。HashSet 底層數(shù)據(jù)結(jié)構(gòu)基于 HashTable 實(shí)現(xiàn),沖突策略采用鏈地址法。

HashSet 基于 HashMap 實(shí)現(xiàn)。在 HashSet 中,只對(duì) value 對(duì)象進(jìn)行處理。

HashSet 和 TreeSet 相比,HashSet 中的數(shù)據(jù)無序存放,即存放元素的順序和取出的順序不一致,而 TreeSet 是有序存放。它們集合中的元素都不允許重復(fù),但 HashSet 允許放入 null 值,TreeSet 不允許。

可以利用 HashSet 不重復(fù)的特性,當(dāng)需要不重復(fù)的集合或需要去重某個(gè)集合的時(shí)候使用。

HashSet 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 add (value: T) 函數(shù)每次在 HashSet 增加一個(gè)值。
訪問元素 通過 values () 返回一個(gè)迭代器對(duì)象,包含 set 中的所有 value 值。
通過 entries () 返回一個(gè)迭代器對(duì)象,包含類似鍵值對(duì)的數(shù)組,鍵值都是 value。
通過 forEach (callbackFn: (value?: T, key?: T, set?: HashSet) => void, thisArg?: Object) 訪問整個(gè) set 的元素。
通過 Symbol.iterator:IterableIterator 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 forEach (callbackFn: (value?: T, key?: T, set?: HashSet) => void, thisArg?: Object) 對(duì) set 中 value 進(jìn)行修改操作。
刪除元素 通過 remove (value: T) 對(duì) set 中匹配到的值進(jìn)行刪除操作。
通過 clear () 清空整個(gè) set 集合。

TreeMap

TreeMap 可用來存儲(chǔ)具有關(guān)聯(lián)關(guān)系的 key-value 鍵值對(duì)集合,存儲(chǔ)元素中 key 是唯一的,每個(gè) key 會(huì)對(duì)應(yīng)一個(gè) value 值。

TreeMap 依據(jù)泛型定義,集合中的 key 值是有序的,TreeMap 的底層是一棵二叉樹,可以通過樹的二叉查找快速的找到鍵值對(duì)。key 的類型滿足 ECMA 標(biāo)準(zhǔn)中要求的類型。TreeMap 中的鍵值是有序存儲(chǔ)的。TreeMap 底層基于紅黑樹實(shí)現(xiàn),可以進(jìn)行快速的插入和刪除。

TreeMap 和 HashMap 相比,HashMap 依據(jù)鍵的 hashCode 存取數(shù)據(jù),訪問速度較快。而 TreeMap 是有序存取,效率較低。

一般需要存儲(chǔ)有序鍵值對(duì)的場(chǎng)景,可以使用 TreeMap。

TreeMap 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 set (key: K,value: V) 函數(shù)每次在 TreeMap 增加一個(gè)鍵值對(duì)。
訪問元素 通過 get (key: K) 獲取 key 對(duì)應(yīng)的 value 值。
通過 getFirstKey () 獲取 map 中排在首位的 key 值。
通過 getLastKey () 獲取 map 中排在未位的 key 值。
通過 keys () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 key 值。
通過 values () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 value 值。
通過 entries () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有鍵值對(duì)。
通過 forEach (callbackFn: (value?: V, key?: K, map?: TreeMap) => void, thisArg?: Object) 訪問整個(gè) map 的元素。
通過 Symbol.iterator:IterableIterator<[K,V]> 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 replace (key: K,newValue: V) 對(duì)指定 key 對(duì)應(yīng)的 value 值進(jìn)行修改操作。
通過 forEach (callbackFn: (value?: V, key?: K, map?: TreeMap) => void, thisArg?: Object) 對(duì) map 中元素進(jìn)行修改操作。
刪除元素 通過 remove (key: K) 對(duì) map 中匹配到的鍵值對(duì)進(jìn)行刪除操作。
通過 clear () 清空整個(gè) map 集合。

TreeSet

TreeSet 可用來存儲(chǔ)一系列值的集合,存儲(chǔ)元素中 value 是唯一的。

TreeSet 依據(jù)泛型定義,集合中的 value 值是有序的,TreeSet 的底層是一棵二叉樹,可以通過樹的二叉查找快速的找到該 value 值,value 的類型滿足 ECMA 標(biāo)準(zhǔn)中要求的類型。TreeSet 中的值是有序存儲(chǔ)的。TreeSet 底層基于紅黑樹實(shí)現(xiàn),可以進(jìn)行快速的插入和刪除。

TreeSet 基于 TreeMap 實(shí)現(xiàn),在 TreeSet 中,只對(duì) value 對(duì)象進(jìn)行處理。TreeSet 可用于存儲(chǔ)一系列值的集合,元素中 value 唯一且有序。

TreeSet 和 HashSet 相比,HashSet 中的數(shù)據(jù)無序存放,而 TreeSet 是有序存放。它們集合中的元素都不允許重復(fù),但 HashSet 允許放入 null 值,TreeSet 不允許。

一般需要存儲(chǔ)有序集合的場(chǎng)景,可以使用 TreeSet。

TreeSet 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 add (value: T) 函數(shù)每次在 HashSet 增加一個(gè)值。
訪問元素 通過 values () 返回一個(gè)迭代器對(duì)象,包含 set 中的所有 value 值。
通過 entries () 返回一個(gè)迭代器對(duì)象,包含類似鍵值對(duì)的數(shù)組,鍵值都是 value。
通過 getFirstValue () 獲取 set 中排在首位的 value 值。
通過 getLastValue () 獲取 set 中排在未位的 value 值。
通過 forEach (callbackFn: (value?: T, key?: T, set?: TreeSet) => void, thisArg?: Object) 訪問整個(gè) set 的元素。
通過 Symbol.iterator:IterableIterator 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 forEach (callbackFn: (value?: T, key?: T, set?: TreeSet) => void, thisArg?: Object) 對(duì) set 中 value 進(jìn)行修改操作。
刪除元素 通過 remove (value: T) 對(duì) set 中匹配到的值進(jìn)行刪除操作。
通過 clear () 清空整個(gè) set 集合。

LightWeightMap

LightWeightMap 可用來存儲(chǔ)具有關(guān)聯(lián)關(guān)系的 key-value 鍵值對(duì)集合,存儲(chǔ)元素中 key 是唯一的,每個(gè) key 會(huì)對(duì)應(yīng)一個(gè) value 值。LightWeightMap 依據(jù)泛型定義,采用更加輕量級(jí)的結(jié)構(gòu),底層標(biāo)識(shí)唯一 key 通過 hash 實(shí)現(xiàn),其沖突策略為線性探測(cè)法。集合中的 key 值的查找依賴于 hash 值以及二分查找算法,通過一個(gè)數(shù)組存儲(chǔ) hash 值,然后映射到其他數(shù)組中的 key 值以及 value 值,key 的類型滿足 ECMA 標(biāo)準(zhǔn)中要求的類型。

初始默認(rèn)容量大小為 8,每次擴(kuò)容大小為原始容量的 2 倍。

LightWeightMap 和 HashMap 都是用來存儲(chǔ)鍵值對(duì)的集合,LightWeightMap 占用內(nèi)存更小。

當(dāng)需要存取 key-value 鍵值對(duì)時(shí),推薦使用占用內(nèi)存更小的 LightWeightMap。

LightWeightMap 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 set (key: K,value: V) 函數(shù)每次在 LightWeightMap 增加一個(gè)鍵值對(duì)。
訪問元素 通過 get (key: K) 獲取 key 對(duì)應(yīng)的 value 值。
通過 getIndexOfKey (key: K) 獲取 map 中指定 key 的 index。
通過 getIndexOfValue (value: V) 獲取 map 中指定 value 出現(xiàn)的第一個(gè)的 index。
通過 keys () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 key 值。
通過 values () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 value 值。
通過 entries () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有鍵值對(duì)。
通過 getKeyAt (index: number) 獲取指定 index 對(duì)應(yīng)的 key 值。
通過 getValueAt (index: number) 獲取指定 index 對(duì)應(yīng)的 value 值。
通過 forEach (callbackFn: (value?: V, key?: K, map?: LightWeightMap) => void, thisArg?: Object) 訪問整個(gè) map 的元素
通過 Symbol.iterator:IterableIterator<[K,V]> 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 setValueAt (index: number, newValue: V) 對(duì)指定 index 對(duì)應(yīng)的 value 值進(jìn)行修改操作。
通過 forEach (callbackFn: (value?: V, key?: K, map?: LightWeightMap) => void, thisArg?: Object) 對(duì) map 中元素進(jìn)行修改操作。
刪除元素 通過 remove (key: K) 對(duì) map 中匹配到的鍵值對(duì)進(jìn)行刪除操作。
通過 removeAt (index: number) 對(duì) map 中指定 index 的位置進(jìn)行刪除操作。
通過 clear () 清空整個(gè) map 集合。

LightWeightSet

LightWeightSet 可用來存儲(chǔ)一系列值的集合,存儲(chǔ)元素中 value 是唯一的。

LightWeightSet 依據(jù)泛型定義,采用更加輕量級(jí)的結(jié)構(gòu),初始默認(rèn)容量大小為 8,每次擴(kuò)容大小為原始容量的 2 倍。集合中的 value 值的查找依賴于 hash 以及二分查找算法,通過一個(gè)數(shù)組存儲(chǔ) hash 值,然后映射到其他數(shù)組中的 value 值,value 的類型滿足 ECMA 標(biāo)準(zhǔn)中要求的類型。

LightWeightSet 底層標(biāo)識(shí)唯一 value 基于 hash 實(shí)現(xiàn),其沖突策略為線性探測(cè)法,查找策略基于二分查找法。

LightWeightSet 和 HashSet 都是用來存儲(chǔ)鍵值的集合,LightWeightSet 的占用內(nèi)存更小。

當(dāng)需要存取某個(gè)集合或是對(duì)某個(gè)集合去重時(shí),推薦使用占用內(nèi)存更小的 LightWeightSet。

LightWeightSet 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 add (obj: T) 函數(shù)每次在 LightWeightSet 增加一個(gè)值。
訪問元素 通過 getIndexOf (key: T) 獲取對(duì)應(yīng)的 index 值。
通過 values () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有 value 值。
通過 entries () 返回一個(gè)迭代器對(duì)象,包含 map 中的所有鍵值對(duì)。
通過 getValueAt (index: number) 獲取指定 index 對(duì)應(yīng)的 value 值。
通過 forEach (callbackFn: (value?: T, key?: T, set?: LightWeightSet) => void, thisArg?: Object) 訪問整個(gè) set 的元素。
通過 Symbol.iterator:IterableIterator 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 forEach (callbackFn: (value?: T, key?: T, set?: LightWeightSet) => void, thisArg?: Object) 對(duì) set 中元素進(jìn)行修改操作。
刪除元素 通過 remove (key: K) 對(duì) set 中匹配到的鍵值對(duì)進(jìn)行刪除操作。
通過 removeAt (index: number) 對(duì) set 中指定 index 的位置進(jìn)行刪除操作。
通過 clear () 清空整個(gè) set 集合。

PlainArray

PlainArray 可用來存儲(chǔ)具有關(guān)聯(lián)關(guān)系的鍵值對(duì)集合,存儲(chǔ)元素中 key 是唯一的,并且對(duì)于 PlainArray 來說,其 key 的類型為 number 類型。每個(gè) key 會(huì)對(duì)應(yīng)一個(gè) value 值,類型依據(jù)泛型的定義,PlainArray 采用更加輕量級(jí)的結(jié)構(gòu),集合中的 key 值的查找依賴于二分查找算法,然后映射到其他數(shù)組中的 value 值。

初始默認(rèn)容量大小為 16,每次擴(kuò)容大小為原始容量的 2 倍。

PlainArray 和 LightWeightMap 都是用來存儲(chǔ)鍵值對(duì),且均采用輕量級(jí)結(jié)構(gòu),但 PlainArray 的 key 值類型只能為 number 類型。

當(dāng)需要存儲(chǔ) key 值為 number 類型的鍵值對(duì)時(shí),可以使用 PlainArray。

PlainArray 進(jìn)行增、刪、改、查操作的常用 API 如下:

操作 描述
增加元素 通過 add (key: number,value: T) 函數(shù)每次在 PlainArray 增加一個(gè)鍵值對(duì)。
訪問元素 通過 get (key: number) 獲取 key 對(duì)應(yīng)的 value 值。
通過 getIndexOfKey (key: number) 獲取 PlainArray 中指定 key 的 index。
通過 getIndexOfValue (value: T) 獲取 PlainArray 中指定 value 的 index。
通過 getKeyAt (index: number) 獲取指定 index 對(duì)應(yīng)的 key 值。
通過 getValueAt (index: number) 獲取指定 index 對(duì)應(yīng)的 value 值。
通過 forEach (callbackFn: (value: T, index?: number, PlainArray?: PlainArray) => void, thisArg?: Object) 訪問整個(gè) plainarray 的元素。
通過 Symbol.iterator:IterableIterator<[number, T]> 迭代器進(jìn)行數(shù)據(jù)訪問。
修改元素 通過 setValueAt (index:number, value: T) 對(duì)指定 index 對(duì)應(yīng)的 value 值進(jìn)行修改操作。
通過 forEach (callbackFn: (value: T, index?: number, PlainArray?: PlainArray) => void, thisArg?: Object) 對(duì) plainarray 中元素進(jìn)行修改操作。
刪除元素 通過 remove (key: number) 對(duì) plainarray 中匹配到的鍵值對(duì)進(jìn)行刪除操作。
通過 removeAt (index: number) 對(duì) plainarray 中指定 index 的位置進(jìn)行刪除操作。
通過 removeRangeFrom (index: number, size: number) 對(duì) plainarray 中指定范圍內(nèi)的元素進(jìn)行刪除操作。
通過 clear () 清空整個(gè) PlainArray 集合。

非線性容器的使用

此處列舉常用的非線性容器 HashMap、TreeMap、LightWeightMap、PlainArray 的使用示例,包括導(dǎo)入模塊、增加元素、訪問元素及修改等操作,示例代碼如下所示:

// HashMap
import HashMap from '@ohos.util.HashMap'; // 導(dǎo)入HashMap模塊

let hashMap = new HashMap();
hashMap.set('a', 123);
hashMap.set(4, 123); // 增加元素
console.info(`result: ${hashMap.hasKey(4)}`); // 判斷是否含有某元素
console.info(`result: ${hashMap.get('a')}`); // 訪問元素

// TreeMap
import TreeMap from '@ohos.util.TreeMap'; // 導(dǎo)入TreeMap模塊

let treeMap = new TreeMap();
treeMap.set('a', 123);
treeMap.set('6', 356); // 增加元素
console.info(`result: ${treeMap.get('a')}`); // 訪問元素
console.info(`result: ${treeMap.getFirstKey()}`); // 訪問首元素
console.info(`result: ${treeMap.getLastKey()}`); // 訪問尾元素

// LightWeightMap
import LightWeightMap from '@ohos.util.LightWeightMap'; // 導(dǎo)入LightWeightMap模塊

let lightWeightMap = new LightWeightMap();
lightWeightMap.set('x', 123);
lightWeightMap.set('8', 356); // 增加元素
console.info(`result: ${lightWeightMap.get('a')}`); // 訪問元素
console.info(`result: ${lightWeightMap.get('x')}`); // 訪問元素
console.info(`result: ${lightWeightMap.getIndexOfKey('8')}`); // 訪問元素

// PlainArray
import PlainArray from '@ohos.util.PlainArray' // 導(dǎo)入PlainArray模塊

let plainArray = new PlainArray();
plainArray.add(1, 'sdd');
plainArray.add(2, 'sff'); // 增加元素
console.info(`result: ${plainArray.get(1)}`); // 訪問元素
console.info(`result: ${plainArray.getKeyAt(1)}`); // 訪問元素


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 非線性
    +關(guān)注

    關(guān)注

    1

    文章

    205

    瀏覽量

    23041
  • hashmap
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    2269
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1966

    瀏覽量

    29962
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開發(fā)學(xué)習(xí):【方舟開發(fā)框架容器類API的介紹與使用】

    在**方舟**開發(fā)框架中,提供了**線性**和**非線性**兩類容器類,共14種,每種容器都有自身的特性及使
    的頭像 發(fā)表于 05-13 16:45 ?809次閱讀
    鴻蒙開發(fā)學(xué)習(xí):【方舟開發(fā)框架<b class='flag-5'>容器</b>類API的介紹與使用】

    如何對(duì)測(cè)量非線性電阻伏安特性的電路進(jìn)行multisim仿真?

    如何對(duì)測(cè)量非線性電阻伏安特性的電路進(jìn)行multisim仿真?
    發(fā)表于 04-27 16:10

    HarmonyOS線性容器特性及使用場(chǎng)景

    線性容器實(shí)現(xiàn)能按順序訪問的數(shù)據(jù)結(jié)構(gòu),其底層主要通過數(shù)組實(shí)現(xiàn),包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七種。 線性容器,充
    發(fā)表于 09-27 15:10

    HarmonyOS非線性容器特性及使用場(chǎng)景

    非線性容器實(shí)現(xiàn)能快速查找的數(shù)據(jù)結(jié)構(gòu),其底層通過hash或者紅黑樹實(shí)現(xiàn),包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet
    發(fā)表于 09-27 15:18

    HarmonyOS語言基礎(chǔ)類庫開發(fā)指南上線啦!

    自身功能的基礎(chǔ)上去除冗余邏輯,保證了數(shù)據(jù)的高效訪問,提升了應(yīng)用的性能。 當(dāng)前提供了線性非線性兩類容器,共14種。每種容器都有自身的特性及使
    發(fā)表于 10-18 16:36

    非線性電阻電路分析

    非線性電阻電路􀂄 4.1 非線性電阻元件的特性􀂄 4.2 非線性電阻電路的方程􀂄 4.3 圖解分析法􀂄 4.4
    發(fā)表于 12-04 18:07 ?0次下載
    <b class='flag-5'>非線性</b>電阻電路分析

    鉑電阻溫度傳感器的非線性特性及其線性化校正方法

    詳細(xì)地介紹了有關(guān)鉑電阻的非線性特性并提出三種線性化校正方法。關(guān)鍵詞:溫度傳感器;鉑電阻;非線性;校正
    發(fā)表于 06-12 11:25 ?33次下載

    鉑電阻溫度傳感器的非線性特性及其線性化校正方法

    詳細(xì)地介紹了有關(guān)鉑電阻的非線性特性提出三種線性化校正方法。
    發(fā)表于 07-18 15:47 ?44次下載

    基于OTA的模擬元件電路非線性特性建模

    研究了一種典型CMOS 源耦合差分對(duì)管電路(OTA)的非線性特性,得到非線性失真項(xiàng)。據(jù)此,導(dǎo)出了由OTA 構(gòu)成模擬電阻和模擬電感以及其他一些模擬元件電路的非線性
    發(fā)表于 01-07 14:52 ?17次下載

    非線性電阻特性研究

    非線性電阻特性研究   若通過元件的電流強(qiáng)度與施加到它的兩端的電壓之間不是線性關(guān)系.就稱這種元件為非線性元件 . 由于通過元件的電
    發(fā)表于 11-24 15:20 ?3754次閱讀
    <b class='flag-5'>非線性</b>電阻<b class='flag-5'>特性</b>研究

    非線性部件的模擬

    非線性部件的模擬 所謂非線性特性,是指它的輸出與輸入信號(hào)之間的關(guān)系是非線性.在實(shí)際物理系統(tǒng)中,往往許多部件在不同程度上都
    發(fā)表于 07-25 10:54 ?1360次閱讀
    <b class='flag-5'>非線性</b>部件的模擬

    運(yùn)算放大電路的非線性特性

    特性的系統(tǒng)的。作為課程的補(bǔ)充,下面討論一下不為人所重視的運(yùn)算放大電路的非線性特性。 ▌01?運(yùn)算放大器的非線性 1.運(yùn)算放大電路 作為信號(hào)處理的常用器件,運(yùn)算放大器,在其信號(hào)處理范圍之
    的頭像 發(fā)表于 03-10 16:06 ?1.5w次閱讀
    運(yùn)算放大電路的<b class='flag-5'>非線性</b><b class='flag-5'>特性</b>

    線性負(fù)載什么意思?非線性負(fù)載是什么意思?

    的。 非線性負(fù)載是指在電路中,電流和電壓之間的關(guān)系不是簡單的線性關(guān)系。非線性負(fù)載通常包括電子器件、晶體管、二極管等,這些元件的電流與電壓之間的關(guān)系是非線性的。 在實(shí)際電路中,
    的頭像 發(fā)表于 11-13 16:10 ?1885次閱讀

    線性電阻和非線性電阻的區(qū)別

    線性電阻和非線性電阻的區(qū)別? 線性電阻和非線性電阻是兩種常見的電子元件,它們?cè)陔娐分芯哂胁煌?b class='flag-5'>特性和行為。本文將詳盡、詳實(shí)、細(xì)致地討論
    的頭像 發(fā)表于 12-07 17:03 ?2637次閱讀

    非線性電路的基本特點(diǎn)是什么

    非線性電路是一類具有非線性特性的電路,其輸出與輸入之間的關(guān)系不是線性的。非線性電路在電子技術(shù)、通信技術(shù)、自動(dòng)控制等領(lǐng)域有著廣泛的應(yīng)用。本文將
    的頭像 發(fā)表于 07-09 11:15 ?750次閱讀