Object-C,NSSet,可変集合


また夜になって、コードを続けます.
その时、お父さんは1つの电话"海が広くて鱼に頼って跃って、天が高くて鸟が飞ぶことを任せます"、お父さんは古い问题のために私に迷惑をかけていません.
自由になって、急にプレッシャーが大きいですね.
将来混ざりすぎてどうしよう~
1つ目の例は,不変集合である.
Set集合、概念は通用して、Javaの中のjavaとにほかならない.util.Set構文が一致せず,メソッドの個数が一致しないだけである.
集合の核心的特徴は,要素が繰り返されないことであり,要素のhashCodeとequalsメソッドに基づいて繰り返されるかどうかである.
コード#コード#
   
//
//  main.m
//  NSSetTest
//
//  Created by fansunion on 15/12/3.
//  Copyright (c) 2015  demo. All rights reserved.
//

#import <Foundation/Foundation.h>
//      ,   Array  NSSet        
NSString*  NSCollectionToString(id collection){
    NSMutableString* str = [NSMutableString stringWithString:@"["];
    //  for-each    ,    
    for(id obj in collection){
        [str appendString:[obj description]];
        [str appendString:@", "];
    }
    //       ,    2      
    NSUInteger length = [str length];
    [str deleteCharactersInRange:NSMakeRange(length-2, 2)];
    [str appendString:@"]"];
    return str;
}

//NSSet      ,     NSMutableSet。
// NSArray,NSMutableArray    
int main(int argc, const char * argv[]) {
    
    @autoreleasepool {
        //  4      ,  2     
        NSSet* set1 = [NSSet setWithObjects:@"A", @"B",@"C",@"B",nil];
        NSLog(@"The set1 count :%ld",[set1 count]);
        NSLog(@"The set1 :%@",NSCollectionToString(set1));
        //set1      
        NSSet* set2 =[set1 setByAddingObject:@"D"];
        NSLog(@"The new set1 :%@",NSCollectionToString(set1));
        NSLog(@"The set2 :%@",NSCollectionToString(set1));
        
        BOOL isSubSet =[set1 isSubsetOfSet:set2];
        NSLog(@"The set1 is subSet of set2:%d",isSubSet);
        
        BOOL have = [set1 containsObject:@"C"];
        NSLog(@"The set1 has C:%d",have);
        
        
    }
    return 0;
}

実行結果
2015-12-03 20:16:52.049 NSSetTest[5903:419290] The set1 count :3
2015-12-03 20:16:52.050 NSSetTest[5903:419290] The set1 :[A, B, C]
2015-12-03 20:16:52.050 NSSetTest[5903:419290] The new set1 :[A, B, C]
2015-12-03 20:16:52.051 NSSetTest[5903:419290] The set2 :[A, B, C]
2015-12-03 20:16:52.051 NSSetTest[5903:419290] The set1 is subSet of set2:1
2015-12-03 20:16:52.051 NSSetTest[5903:419290] The set1 has C:1
Program ended with exit code: 0
現在の学習の進度によって、2017年までにObject-CとiOSを初歩的に把握していれば、問題はありません.