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...