NSArray 和 NSSet 的區別

2022-08-01 19:15:15 字數 295 閱讀 8741

nsarray:有序的集合,儲存的元素在乙個整塊的記憶體中並按序排列(廢話,我學過c語言的陣列這還不知道啊);

nsset:無序的集合,雜湊儲存。

就是說,如果搜尋乙個元素,nsset的效率會比nsarray高。為什麼呢?剛開始迷糊了,原來道理比較簡單:hash!nsset中元素的儲存和訪問都是乙個hash的過程。比如你要儲存元素a,乙個hash演算法直接就能直接找到a應該儲存的位置;同樣,當你要訪問a時,乙個hash過程就能找到a儲存的位置。而對於nsarray,若想知道a到底在不在陣列中,則需要乙個乙個元素比較,顯然效率沒了。just it!

NSSet和NSArray的對比

1 共同點 都是集合,都能存放多個oc物件 只能存放oc物件,不能存放非oc物件型別 基本資料型別 int char float等,結構體,列舉 本身都不可變,都有乙個可變的子類 2 不同點 nsarray有順序,nsset沒有順序 集合 nsset 是一種雜湊表,運用雜湊演算法,查詢集合中的元素比...

NSSArray和NSSet遍歷哪個更快

nsarray的儲存資料的方式是連續的,後乙個資料在記憶體中是緊接著前乙個資料的,而nsset在儲存的時候並不是需要一塊連續的記憶體,是無序的!nsset由於在底層使用hash的思想實現的,所以他就保證了裡面儲存的物件必須是唯一的,而陣列可以儲存相同的幾個物件。由於nsset是用hash實現的所以就...

NSTimer 和 NSArray 同時使用的問題

我宣告乙個全域性變數nsarray存放動畫所需要各幀,然後用nstimer進行定時動畫顯示,如下 myimages nsarray arraywithobjects uiimage imagenamed frame 1.png uiimage imagenamed frame 2.png uiima...