NSOrderedSet的简单使用

NSOrderedSet 的简单用法

1.创建

- (void)removeDistinct
{
    NSOrderedSet *set1 = [NSOrderedSet orderedSetWithArray:@[@3,@7,@3,@3,@0]];
    NSLog(@"%@",set1);

    NSArray *array = @[@3];
    NSOrderedSet *set2 = [NSOrderedSet orderedSetWithArray:array range:NSMakeRange(0, 1) copyItems:NO];
    NSLog(@"%@",set2);

    NSOrderedSet *set3 = [NSOrderedSet orderedSetWithObjects:@"aaaa",@4, nil];
    NSLog(@"%@",set3);
}

2.查找及遍历

- (void)queryElement
{
    NSOrderedSet *set1 = [NSOrderedSet orderedSetWithArray:@[@3,@7,@3,@3,@0]];
    NSLog(@"%@",set1);

    if ([set1 containsObject:@3]) {
        NSLog(@"EXIST");
    }

    [set1 enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSLog(@"%@",obj);
    }];
}

3.集合运算

- (void)collection
{
    NSOrderedSet *set1 = [NSOrderedSet orderedSetWithObjects:@4,@5,@6,@7,nil];
    NSMutableOrderedSet *set2 = [NSMutableOrderedSet orderedSetWithObjects:@5,@7,@9, nil];
    if ([set1 intersectsOrderedSet:set2]) {
        NSLog(@"intersectsOrderedSet -- yes");
    }

    if ([set2 isSubsetOfOrderedSet:set1]) {
        NSLog(@"isSubsetOfOrderedSet -- yes");
    }

    [set2 unionOrderedSet:set1];

    NSLog(@"%@",set2);
}

NSOrderedSet的复杂用法

过滤元素

- (void)queryIndexes
{
    NSOrderedSet *set = [NSOrderedSet orderedSetWithObjects:@3,@1,@8,@6,@12, nil];
    NSIndexSet *indexs = [set indexesOfObjectsWithOptions:NSEnumerationConcurrent passingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj integerValue] >= 6) {
            return YES;
        }
        return NO;
    }];
    NSArray *valueArray = [set objectsAtIndexes:indexs];
    NSLog(@"%@",valueArray);
}

输出:8,6,12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值