iOS開發 陣列的去重 無序和有序

2021-07-12 05:02:59 字數 1343 閱讀 6995

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

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

**:

nsarray *arr =@[

@11,@22,@11];

nsmutabledictionary *dict = [nsmutabledictionarydictionary];

for (nsnumber *numberin arr)

nslog(@"

%@",[dictallvalues]);

輸出結果為:
2016-03-09 17:52

:46.421

test

[9555:408408] (

22,11

)

2.利用nsset的allobjects方法

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

**:

nsarray *arr =@[

@111,@222,@111];

nsset *set = [nssetsetwitharray:arr];

nslog(@"

%@",[setallobjects]);

輸出結果為:
2016-03-09 17:55

:13.081

test

[9577:411377] (

111,

222)

很多時候可能會遇到需要去除nsarray重複的元素,用了很多方法。

最方便快捷的是nsset.但是nsset去重後有時候陣列元素的順序會打亂。於是換了另外一種方法如下:

**:

nsarray *classarray =@[@1,@2,@1,@3,@3,@1];

nsmutablearray *categoryarray = [[nsmutablearray alloc] init];

for (unsigned i =0; i < [classarray count]; i++)

}nslog(@"---%@",categoryarray);

輸出結果為:
2016-03-09 17:59

:12.554

test

[9598:414513]

---(

1,2,

3)

順序為有序的.

iOS 陣列去重

利用nsdictionary的allkeys allvalues 方法 可以將nsarray中的元素存入乙個字典,然後利用allkeys或者allvalues取得字典的所有鍵或值,這些鍵或值都是去重的。示例 nsarray arr 111,222,111 nsmutabledictionary di...

iOS陣列的去重

近來,專案中遇到了陣列去重的需求,自己想了下,建立另乙個陣列加判斷條件來新增原陣列的元素 但是上面那種方法的時間複雜度是 n 2 下面這個方法 nsarray arr 1 2 1 3 1 2 3 2 nsorderedset set nsorderedset alloc initwitharray ...

iOS陣列去重總結

一般情況下我們都要對陣列進行去重整理,我總結了以下幾種方法,廢話不多說,一一分析 一 利用字典 nsarray arr qq ww qq nsmutabledictionary dict nsmutabledictionary dictionary for nsstring str in arr n...