IOS 開發 NSArray去除重複元素的方法

2021-07-07 02:15:24 字數 872 閱讀 3509

有時需要將nsarray中去除重複的元素,而存在nsarray中的元素不一定都是nsstring型別。今天想了想,加上朋友的幫助,想到兩種解決辦法,先分述如下。

1.利用nsdictionary的allkeys(allvalues)方法

可以將nsarray中的元素存入乙個字典,然後利用allkeys或者allvalues取得字典的所有鍵或值,這些鍵或值都是去重的。

示例**:

nsarray *arr = @[@111,@222,@111];

nsmutabledictionary *dict = [nsmutabledictionary dictionary];

for (nsnumber *number in arr)

nslog(@"%@",[dict allvalues]);

輸出結果為:

2013-05-21 12:03:49.449 test1[4377:c07] (

111,

222)

2.利用nsset的allobjects方法

這種方法更快,利用nsset不會新增重複元素的特性。不過去重的陣列沒有進行排序,如果需要排序,可以使用nssortdescriptor類。

示例**:

nsarray *arr = @[@111,@222,@111];

nsset *set = [nsset setwitharray:arr];

nslog(@"%@",[set allobjects]);

輸出結果為:

2013-05-21 12:06:26.508 test1[4547:c07] (

111,

222 )

ios 開發 NSArray 排序

針對nsstring字串的排序 方法一 nsarray ary a3 a1 a2 a10 a24 nslog ary nsarray myary ary sortedarrayusingcomparator nsstring obj1,nsstring obj2 nslog myary 結果 a3,...

iOS開發之NSArray的過濾

找出乙個陣列 nsfilemanager filemanager nsfilemanager defaultmanager nsstring defaultpath nsbundle mainbundle resourcepath nserror error nsarray directorycon...

NSArray去重過濾

兩個 nsarray去重過濾 避免大量使用for迴圈 取兩個陣列交集的時候,可以先將nsarray 轉換成 nsmutableset,再通過取二者交集即可,但是需要注意一點是陣列中的元素最好複寫一下isequal和hash方法。保證取交集後的結果是正確的 nsarray arr 12 11 12 1...