2013-12-13 8 views
0

NSSet을 사용하지 않고이 작업을 수행하고 싶습니다. 나는 아마 더 빠르다는 것을 알지만 배열이 어떻게 작동하는지 이해하려고 노력하고있다. 이것은 내가 사용하고있는 가변 배열입니다. 중복 값이 ​​있습니다.배열에서 중복을 제거하려면 어떻게합니까?

NSMutableArray *mainArray = @[@"a",@"a",@"b",@"c",@"d",@"d"]; 
NSLog(@"mainArray = %@", mainArray); 

답변

0
- (NSArray *)arrayWithUniqueObjectsFromArray:(NSArray *)array 
{ 
    NSMutableArray *uniqueObjects = [NSMutableArray new]; 
    for(id obj in array) { 
     if([uniqueObjects containsObject:obj] == NO) { 
      [uniqueObjects addObject:obj]; 
     } 
    } 
    return uniqueObjects; 
} 
+0

일부 추가적인 설명이 용액 작동하지만'containsObject 인해 (N^2) O 복잡도를 갖는'O (N)이다. O (log n) 시간을 얻기 위해 선택적으로 해시 테이블 또는 2 진 검색을 사용할 수 있습니다. (물론 OP에는 사용하지 않으려는 NSMutableOrderedSet을 사용할 수도 있습니다.) http://www.objc.io/issue-7/collections.html에는 좋은 개요와 자세한 내용이 있습니다. –

+0

매력처럼 작동했습니다. 감사 – user3071579

관련 문제