C 學習筆記(八) 集合

2021-04-02 19:07:43 字數 1296 閱讀 3360

陣列最大的限制就是一旦建立好陣列,它們的大小就是固定的,不能在現有的陣列末尾新增新專案,除非建立乙個新的陣列。

c#

中的陣列是作為

system.array

類的例項來執行的,它們只是集合類中的一種。集合類一般用於處理物件列表,其功能要比簡單陣列要多,這些功能是通過執行

system.collections

命名空間中的介面而實現的,因此集合的語法已經標準化了。 在

system.collections

命名空間中有許多介面都提供了基本的集合功能: 1

.ienumerable

提供了迴圈集合中專案的功能。2.

icollection

(繼承於ienumerable)可以獲取集合中專案的個數,並能把專案複製到乙個簡單的陣列型別中。3.

ilist

(繼承於ienumerable和icollection)提供了集合的專案列表,並可以訪問這些專案,以及其他一些與專案列表相關的功能。4.

idictionary

(繼承於ienumerable和icollection)類似於ilist,但提供了可通過鍵碼值而不是索引訪問的專案列表。

system.array

類繼承了ilist,icollection和ienumerable,但不支援ilist的一些更高階的功能,表示大小固定的乙個專案列表。

system.collections.arraylist

也執行ilist,icollection和ienumerable介面,但執行的方式比system.array更複雜。陣列的大小是固定的(不能增加或刪除元素),而這個類可以用於表示大小可變的專案列表。

可以從乙個類派生自己的集合system.collections.collectionbase(強型別集合),collectionbase提供了兩個受保護的屬性,它們可以訪問儲存的物件本身。list可以通過ilist介面訪問專案,innerlist則是用於儲存專案的arraylist物件。

在為乙個集合類新增索引後,因為ilist.list屬性返回乙個system.object物件,所以在返回時需要進行顯式資料型別轉換。

public

class animals : collectionbase

set }

}

這樣我們就為這個索引符定義了乙個型別,使用該索引符訪問乙個專案時,就可以得到這個型別:

animalcollection[0].feed();

而不需要讀取出專案後在進行相應的型別轉換:

((animal)animalcollection[0]).feed();

C 學習筆記(八) 集合

陣列最大的限制就是一旦建立好陣列,它們的大小就是固定的,不能在現有的陣列末尾新增新專案,除非建立乙個新的陣列。c 中的陣列是作為 system.array 類的例項來執行的,它們只是集合類中的一種。集合類一般用於處理物件列表,其功能要比簡單陣列要多,這些功能是通過執行 system.collecti...

Python3學習筆記(八) 集合

集合 set 是一種可變的無序的不重複的資料型別 要建立集合,需要將所有項 元素 放在花括號 內,以逗號 分隔。s 集合中的元素必須是不可變的資料型別 數字,元組,字串 不能是可變的資料型別 列表,字典,set集合 s s 元素可以為數字,字串,元組 s 元素不能為列表 traceback most...

java基礎 八 集合簡介

首先,先看一下集合中的大體的乙個繼承結構。簡單的說,介面set,list都繼承自collection介面。而map則不繼承。collection 集合層次中的根介面,jdk沒有提供這個介面直接的實現類。collection介面是構造類集框架的基礎。它宣告所有類集都將擁有的核心方法。因為所有類集實現c...