前言
話說昨天是周日,程序猿跟產(chǎn)品經(jīng)理一起看電視。每個(gè)節(jié)目看到一半程序猿就換臺(tái)曙搬,看到一半就換臺(tái)梳杏,幾次之后產(chǎn)品經(jīng)理終于忍無可忍的咆哮:老子剛看出點(diǎn)意思你就換、剛看出點(diǎn)意思你就換家卖,到底還讓不讓人看啦?!程序猿淡定的盯著電視道:你半路改需求的時(shí)候我可沒吱過聲弟孟!
NSArray <NSString*>* originalArray; //待去重?cái)?shù)組
第一種:利用NSDictionary的key的唯一性
NSMutableDictionary *dict = [[NSMutableDictionary dictionary];
for(NSString *original in dataArray)
{
[dict setValue:original forKey:original];
}
NSArray * noRepeatArray = [dict allKeys];
這種去重方式得到的數(shù)組是一個(gè)亂序數(shù)組,因?yàn)樽值浔旧頍o序.
第二種方法:利用NSSet去重
NSSet *set = [NSSet setWithArray:originalArray];
NSArray * noRepeatArray = [set allObjects];
這種方法也會(huì)得到一個(gè)無序數(shù)組,集合本無序
第三種方法:利用NSArray的containsObject 來去重
NSMutableArray *noRepeatArray = [[NSMutableArray alloc]init];
for (NSString *original in originalArray) {
if (![noRepeatArray containsObject:original]) {
[noRepeatArray addObject:str];
}
}
得到一個(gè)有序數(shù)組
第四種方法:利用KVC的方式
NSArray * noRepeatArray = = [originalArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
得到一個(gè)有序數(shù)組
個(gè)人觀點(diǎn),NSSet是最快的,如果不要求順序優(yōu)先選擇.