unity List集合的使用時要注意的問題

2021-09-29 23:23:04 字數 1653 閱讀 7899

list 類

註解list 類是 arraylist 類的泛型等效項。 使用時不強制指定長度,它通過使用大小根據需要動態增加的陣列來實現 ilist 泛型介面。

您可以通過使用 add 或 addrange 方法將項新增到 list。

宣告list 集合名 =

newlist

<

t>()

;屬性capacity 獲取或設定該內部資料結構在不調整大小的情況下能夠容納的元素總數。

count 獲取 list 中包含的元素數。

item[

int32

] 獲取或設定指定索引處的元素。

常用方法

增add

(t) 將物件新增到 list 的結尾處。

addrange

(ienumerable

) 將指定集合的元素新增到 list 的末尾。

insert

(int32, t) 將元素插入 list 的指定索引處。

刪clear

() 從 list 中移除所有元素。

remove

(t) 從 list 中移除特定物件的第乙個匹配項。

removeat

(int32) 移除 list 的指定索引處的元素。

改sort

() 使用預設比較器對整個 list 中的元素進行排序。

reverse

() 將整個 list 中元素的順序反轉。

toarray

() 將 list 的元素複製到新陣列中。

查contains

(t) 確定某元素是否在 list 中,常用於所以元素值都是唯一的情況

indexof

(t) 搜尋指定的物件,並返回整個 list 中第乙個匹配項的從零開始的索引。

binarysearch

(t) 使用預設的比較器在整個已排序的 list 中搜尋元素,並返回該元素從零開始的索引.

find

(predicate

) 搜尋與指定謂詞所定義的條件相匹配的元素,並返回整個 list 中的第乙個匹配元素。

findall

(predicate

) 檢索與指定謂詞定義的條件匹配的所有元素。

重點

改實際使用過程中,如果新增資料時為亂序,那麼如果想獲得正確的正序,只需要使用一次sort即可.

但如果想獲得正確的倒序,則要先使用一次sort,再使用一次reverse才可以.

因為假如資料為9,8,6,7,5, 那麼使用reverse後的效果為 5,6,7,8,9,並不是理想中的結果,但是sort則是每次都能獲得正確結果,所以想要獲得正確的倒序要先sort再reverse.

檢視介紹binarysearch跟indexof區別不大,實際上兩個方法的搜尋方式是不同的.

indexof是從列表頭部開始遍歷,而binarysearch則是使用二分搜尋.

因此假如列表中所有元素唯一,則此兩種方法並無明顯差別,而當有重複元素時,則binarysearch經常會返回錯誤結果.如果要獲得正確結果,要在使用binarysearch前將列表排序或者拷貝到另一列表.

實際使用過程中,indexof適用範圍更廣,而如果資料量較大時,binarysearch的效率就比較高了.

完整釋義官方鏈結

Golang defer 使用時的坑

defer是golang語言中的關鍵字,用於資源的釋放,會在函式返回之前進行呼叫。一般採用如下模式 f,err os.open filename if err nil defer f.close 如果有多個defer表示式,呼叫順序類似於棧,越後面的defer表示式越先被呼叫。不過如果對defer的...

background size使用時的注意點

background size要寫在background image後面,否則background size不會生效 comment clist item code 這樣寫,background size是不生效的 必須這樣寫 comment clist item code 如果乙個後面的乙個樣式修...

Block 的使用時機

block 一般是用來表示 簡化一小段的程式碼,它特別適合用來建立一些同步執行的程式片段 封裝一些小型的工作或是用來做為某乙個工作完成時的回傳呼叫 callback 在新的ios api中block被大量用來取代傳統的delegate和callback,而新的api會大量使用block主要是基於以下...