NSSet使用小结

本文主要介绍了NSSet在Objective-C中的基本用法,包括添加、删除元素,遍历集合,以及NSSet与其他集合类型的交互操作。通过实例讲解了NSSet的特性,如不包含重复元素,以及其在数据去重场景中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        NSSet *set1 = [NSSet setWithObjects:@"a", @"b", @"c", @"d", nil];
        NSSet *set2 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", nil];
        NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
        NSSet *set3 = [NSSet setWithArray:array];
        
        NSLog(@"set1 :%@", set1);
        NSLog(@"set2 :%@", set2);
        NSLog(@"set3 :%@", set3);
        
        //获取集合个数
        NSLog(@"set1 count :%d", set1.count);
        
        //以数组的形式获取集合中的所有对象
        NSArray *allObj = [set2 allObjects];
        NSLog(@"allObj :%@", allObj);
        
        //获取任意一对象
        NSLog(@"anyObj :%@", [set3 anyObject]);
        
        //是否包含某个对象
        NSLog(@"contains :%d", [set3 containsObject:@"obj2"]);
        
        
        //是否包含指定set中的对象
        NSLog(@"intersect obj :%d", [set1 intersectsSet:set3]);
        
        //是否完全匹配
        NSLog(@"isEqual :%d", [set2 isEqualToSet:set3]);
        
        //是否是子集合
        NSLog(@"isSubSet :%d", [set3 isSubsetOfSet:set1]);
        
        
        
        NSSet *set4 = [NSSet setWithObjects:@"a", @"b", nil];
        NSArray *ary = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
        NSSet *set5 = [set4 setByAddingObjectsFromArray:ary];
        NSLog(@"addFromArray :%@", set5);
        
        
        
        
        NSMutableSet *mutableSet1 = [NSMutableSet setWithObjects:@"1", @"2", @"3", nil];
        NSMutableSet *mutableSet2 = [NSMutableSet setWithObjects:@"a", @"2", @"b", nil];
        NSMutableSet *mutableSet3 = [NSMutableSet setWithObjects:@"1", @"c", @"b", nil];
        
        //集合元素相减
        [mutableSet1 minusSet:mutableSet2];
        NSLog(@"minus :%@", mutableSet1);
        
        //只留下相等元素
        [mutableSet1 intersectSet:mutableSet3];
        NSLog(@"intersect :%@", mutableSet1);
        
        //合并集合
        [mutableSet2 unionSet:mutableSet3];
        NSLog(@"union :%@", mutableSet2);
        
        //删除指定元素
        [mutableSet2 removeObject:@"a"];
        NSLog(@"removeObj :%@", mutableSet2);
        
        
        //删除所有数据
        [mutableSet2 removeAllObjects];
        NSLog(@"removeAll :%@", mutableSet2);
        
    }
    return 0;
}


日志:

 set1 :{(
    d,
    b,
    c,
    a
)}
 set2 :{(
    1,
    2,
    3
)}
 set3 :{(
    a,
    b,
    c
)}
 set1 count :4
 allObj :(
    1,
    2,
    3
)
 anyObj :a
 contains :0
 intersect obj :1
 isEqual :0
 isSubSet :1
 addFromArray :{(
    3,
    b,
    1,
    4,
    2,
    a
)}
 minus :{(
    1,
    3
)}
 intersect :{(
    1
)}
 union :{(
    b,
    1,
    2,
    a,
    c
)}
 removeObj :{(
    b,
    1,
    2,
    c
)}
 removeAll :{(
)}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值