NSArray去重過濾

2021-08-28 05:40:52 字數 1344 閱讀 5257

兩個 nsarray去重過濾 避免大量使用for迴圈

// 取兩個陣列交集的時候,可以先將nsarray 轉換成 nsmutableset,再通過取二者交集即可,但是需要注意一點是陣列中的元素最好複寫一下isequal和hash方法。保證取交集後的結果是正確的

nsarray *arr = @[@"12-11", @"12-11", @"12-11", @"12-12", @"12-13", @"12-14"];

nsset *set = [nsset setwitharray:arr];

// 要將陣列內元素排序或者過濾可以結合nssortdescriptor 和nspredicate使用,這樣避免使用大量for迴圈之類的**

nsarray *sortdesc = @[[[nssortdescriptor alloc] initwithkey:nil ascending:yes]];

nsarray *sortsetarray = [set sortedarrayusingdescriptors:sortdesc];

nslog(@"set%@\nsort set%@", set, sortsetarray);

nsarray *array1 = [nsarray arraywithobjects:@"1",@"2",@"3",@"4",@"5", nil];

nsarray *array2 = [nsarray arraywithobjects:@"1",@"2",@"3",@"4",@"5",@"6", nil];

nsmutableset *set1 = [nsmutableset setwitharray:array1];

nsmutableset *set2 = [nsmutableset setwitharray:array2];

// 取出差集

array1.count >= array2.count ? [set1 minusset:set2] : [set2 minusset:set1];

nsmutablearray *array = [nsmutablearray arraywitharray:array1.count >= array2.count ? set1.allobjects : set2.allobjects];

nslog(@"差集-%@", array);

// 取並集

[set1 unionset:set2];

nslog(@"並集:%@",set1.allobjects); // 並集的結果為:

// 取交集

[set1 intersectset:set2];

nslog(@"交集:%@",set1.allobjects); // 交集的結果為

MySQL DISTINCT 去重(過濾重複資料)

在使用 mysql select 語句查詢資料的時候返回的是所有匹配的行。例如,查詢 tb students info 表中所有 age 的執行結果如下所示。mysql select age from tb students info age 25 23 23 22 24 21 22 23 22 2...

iOS開發之NSArray的過濾

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

mysql命令去重 Linux 常用查詢過濾命令

b 以位元組為單位進行分割。c 以字元為單位進行分割。d 自定義分隔符,預設為製表符。f 與 d一起使用,指定顯示哪個區域。field 字段 eg who root pts 0 2020 03 12 21 00 124.114.237.101 root pts 1 2020 03 12 21 18 ...