iOS 배열에서 중복 데이터를 제거하는 몇 가지 방법 정보

5499 단어 ios
              ,            ,          ?

첫 번째: NSDictionary를 이용한 AllKeys(AllValues) 방법


코드:
  
NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-03",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-04",@"2014-04-06",@"2014-04-08",
                           @"2014-04-05",@"2014-04-07",@"2014-04-09",];
    NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:0];
    for(NSString *str in dataArray)
    {
        [dic setValue:str forKey:str];
    }
    NSLog(@"%@",[dic allKeys]);

 
 
 
인쇄 결과:
(     "2014-04-09",     "2014-04-02",     "2014-04-08",     "2014-04-01",     "2014-04-07",     "2014-04-06",     "2014-04-05",     "2014-04-04",     "2014-04-03")  

두 번째 방법: NSSet을 이용한 AllObjects 방법


인스턴스 코드:
 
 NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-03",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-04",@"2014-04-06",@"2014-04-08",
                           @"2014-04-05",@"2014-04-07",@"2014-04-09",];
    NSSet *set = [NSSet setWithArray:dataArray];
    NSLog(@"%@",[set allObjects]);

인쇄 결과:
 
(     "2014-04-01",     "2014-04-02",     "2014-04-03",     "2014-04-04",     "2014-04-06",     "2014-04-08",     "2014-04-05",     "2014-04-07",     "2014-04-09")

세 번째 방법은 수조의 containsObject를 이용하여 제거한다


코드는 다음과 같습니다.
 
NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-03",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-04",@"2014-04-06",@"2014-04-08",
                           @"2014-04-05",@"2014-04-07",@"2014-04-09",];
    NSMutableArray *listAry = [[NSMutableArray alloc]init];
    for (NSString *str in dataArray) {
        if (![listAry containsObject:str]) {
            [listAry addObject:str];
        }
    }
    NSLog(@"%@",listAry);

인쇄 결과:
 
 (     "2014-04-01",     "2014-04-02",     "2014-04-03",     "2014-04-04",     "2014-04-06",     "2014-04-08",     "2014-04-05",     "2014-04-07",     "2014-04-09")  

네 번째 방법: 키밸류를 이용하는 방식(자신이 잘 몰라서)


 
    NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-03",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-01",@"2014-04-02",@"2014-04-03",
                           @"2014-04-04",@"2014-04-06",@"2014-04-08",
                           @"2014-04-05",@"2014-04-07",@"2014-04-09",];
    dataArray = [dataArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
    NSLog(@"%@",dataArray);

인쇄 결과는 다음과 같습니다.
 
 
 (
    "2014-04-01",
    "2014-04-02",
    "2014-04-03",
    "2014-04-04",
    "2014-04-06",
    "2014-04-08",
    "2014-04-05",
    "2014-04-07",
    "2014-04-09"
)

 
 
 
 
 
 
 
 
 
총괄: 이 몇 가지 방식은 중복된 데이터를 제거할 수 있고 for순환의 방식으로 제거하는 방법은 서술하지 않을 수 있다.남의 것도 참고해서 정리를 해봤어요.
케이스 사용:
서버가 날짜가 있는 그룹을 되돌려줍니다. 물론 중복된 날짜가 있습니다. 같은 날짜의 목록이 같은 곳에 있으면 머리에 날짜를 표시하면 이 방법으로 중복을 제거할 수 있습니다. 물론 구체적인 상황에 따라 코드와 논리가 다릅니다!

좋은 웹페이지 즐겨찾기