NSSArray和NSSet遍歷哪個更快

2021-06-29 12:27:42 字數 332 閱讀 4308

nsarray的儲存資料的方式是連續的,後乙個資料在記憶體中是緊接著前乙個資料的,而nsset在儲存的時候並不是需要一塊連續的記憶體,是無序的!

nsset由於在底層使用hash的思想實現的,所以他就保證了裡面儲存的物件必須是唯一的,而陣列可以儲存相同的幾個物件。

由於nsset是用hash實現的所以就造就了它查詢速度比較快,但是我們不能把某某物件存在第幾個元素後面之類的有關腳標的操作。

而陣列可以進行腳標的操作,但是查詢速度稍微要慢一些。

當我們在查詢某乙個元素a的時候,在nsset中我們直接可以通過hash值找到a的儲存的位置,而nsarray則需要遍歷a前面的所有的額元素後才能找到。

NSSet和NSArray的對比

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

NSArray 和 NSSet 的區別

nsarray 有序的集合,儲存的元素在乙個整塊的記憶體中並按序排列 廢話,我學過c語言的陣列這還不知道啊 nsset 無序的集合,雜湊儲存。就是說,如果搜尋乙個元素,nsset的效率會比nsarray高。為什麼呢?剛開始迷糊了,原來道理比較簡單 hash!nsset中元素的儲存和訪問都是乙個has...

HashSet和HashMap的使用和遍歷

通過使用迭代器的方式遍歷hashset iterator iterator students.iterator while iterator.hasnext 通過foreach的方式遍歷hashset 這邊我們建立乙個hashmap還是存入前面的三個物件 建立乙個hashmap,通過put方法加入資...