OC视频笔记-5

集合的基本概念 

在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序的,同一个对象只能保存一个,并且它也分为可变和不可变的集合对象(可变集合对象:NSMutableSet)。


不可变集合—NSSet

//类似与数组的构建,直接创建一个集合。

NSSet *set1 = [[NSSet alloc] initWithObjects:@“one”,@“two”,nil];        //实例方法

 

//通过数组构建集合

NSArray *array = [NSArray arrayWithObjects:@“1”,@“2”,@“3”,nil];

NSSet *set2 = [[NSSet alloc] initWithArray:array];


//通过已有集合构建集合

NSSet *set3 = [[NSSet alloc] initWithSet:set2];


NSSet常用方法


//集合3中对象的个数

int count = [set3 count];


//以数组的形式返回集合3中所有的对象

NSArray *allObjects = [set3 allObjects];


//返回集合3中的任意一个对象

id object = [set3 anyObject];


//集合4中是否包含内容为2的字符串对象,如果包含,返回YES,否则为NO。

BOOL isContain = [set4 containsObject:@“2”];


//集合4中与集合2中是否存在有相同元素的对象,如果有,返回YES,否则为NO。

BOOL isIntersect = [set4 intersectsSet:set2];


//集合4与集合5中的元素是否完全匹配,如果匹配返回YES,否则返回NO。

BOOL isEqual = [set4 isEqualToSet:set5];


//集合4是否是集合5的子集合,如果是返回YES,否则为NO。

BOOL isSubset = [set4 isSubsetOfSet:set5];


NSSet *appSet1 = [set5 setByAddingObject:@“two”];

NSSet *appSet2 = [set4 setByAddingObjectsFromSet:set3];

NSSet *appSet3 = [set3 setByAddingObjectsFromArray:array2];


NSMutableSet *set1 = [NSMutableSet set];

NSMutableSet *set2 = [NSMutableSet setWithObjects:@“1”,@“2”,nil];

NSMutableSet *set3 = [NSMutableSet setWithObjects:@“a”,@“2”,nil];

 

//集合2“减去”集合3中的元素,集合2最后元素只有一个,且为1.

[set2 minusSet:set3];

 

//集合2与集合3中元素的交集,集合2最后元素只有一个,且为2.

[set2 intersectSet:set3];


//集合3与集合3中元素的并集,集合2最后元素只有3个,且为1,2,a

[set2 unionSet:set3];


//将空集合1设置为集合3中的内容

[set1 setSet:set3];


//根据数组的内容删除集合中的对象

[set2 addObjectsFromArray:array];

[set2 removeObject:@“1”];

[set2 removeAllObjects];

  

*********************例题*********************

1.构建一个数组,含有100个1~100的整数,并且用不同的方式将它们遍历出来。

    NSMutableArray *arrayx= [NSMutableArray arrayWithCapacity:100];

    for(int i = 0;i < 100 ;i++){

         NSNumber *intNumber = [NSNumber numberWithInt:i];

         [arrayx addObject:intNumber];

    } 

    for(NSNumber *number in arrayx){

         NSLog(@"$$$$$$$________%@",number);

    }

    NSLog(@“############高效遍历方法##############”);

    for(NSString *string in arrayx){

         NSLog(@"$$$$$$$____@____%@",string);

    }

    NSLog(@"############普通遍历方法############");

    for (int index = 0; index < 100; index++) {

         NSString *str = [arrayx objectAtIndex:index];

         NSLog(@"-----%@",str);

    }


2.有这么一个整数——123456789,如何将这个整数的每一位数,从末位开始依次放入一个数组中,(那么这个数组的第一位元素为9,以此类推),如果你成功了,将它们遍历出来。

    NSLog(@"------------123456789------------");

    int numberx = 123456789;

    NSMutableArray *arrayz = [[NSMutableArray alloc]init]; 

    while (numberx > 0) {

        int n = numberx%10;

        numberx = numberx/10;

        [arrayz addObject:[NSNumber numberWithInt:n]];

    }  

    for (NSNumber *num in arrayz) {

        NSLog(@"++++++++++++++++++++%@",num);

    }  


3.如何将字符串@“abc123.xyz789倒置。

    NSLog(@"-------------abc123.xyz789-------------");

    NSString *str1 = @"abc123.xyz789";

    int length2 = [str1 length];

    while (length2 > 0) {

         char a = [str1 characterAtIndex:length2-1];

         length2--;

         NSLog(@"NNNNNNNNNNNN-----------%c",a);

    }    

    length2 = [str1 length];

    NSRange range ;

    range.location = 0;

    range.length = 1;

    NSMutableArray *arraym = [[NSMutableArray alloc]init];

    NSMutableArray *arrayn = [[NSMutableArray alloc]init];

    for (int zyx=0; zyx < length2; zyx++) {

        NSString *substr = [str1 substringWithRange:range];

        [arraym addObject:substr];

        NSLog(@"-----------------%@",substr);

        range.location ++;

    }  

    for (int i = 0 ; i < length2; i++) {

        NSString *tt = [arraym lastObject];

        [arrayn addObject:tt];

        [arraym removeLastObject];

    }    

    NSString *good = [arrayn componentsJoinedByString:@","];

    NSLog(@"转换后的字符串为:%@",good);

    //删除字符串中的“,”。   

    NSMutableString*mu = [[NSMutableString alloc]init];

    mu = [NSMutableString stringWithString:good];   

    NSLog(@">>>>>>>>>>%@",mu);    

    for (int z =1; z < length2; z++) {

        [mu deleteCharactersInRange:NSMakeRange(z, 1)];

        NSLog(@"<<<<<<<<<<<%@",mu);

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值