博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object-C代码练习【集合_NSSet和NSMutableSet】
阅读量:6064 次
发布时间:2019-06-20

本文共 3869 字,大约阅读时间需要 12 分钟。

hot3.png

////  main.m//  集合_NSSet////  Created by on 14-10-6.//  Copyright (c) 2014年 apple. All rights reserved.//#import 
int main(int argc, const char * argv[]) { @autoreleasepool {///不可变集合///// 概念:NSSet类,是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个 // 直接创建集合 NSSet *set1 = [[NSSet alloc] initWithObjects:@"a", @"b", @"c", @"d", nil]; NSLog(@"%@", set1); // 通过数组的构建集合 NSArray *array = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", nil]; NSSet *set2 = [[NSSet alloc] initWithArray:array]; NSLog(@"%@", set2); // 通过已有的集合构建 NSSet *set3 = [[NSSet alloc] initWithSet:set2]; NSLog(@"%@", set3); // 集合中元素的个数 NSLog(@"%ld", [set3 count]); // 以数组格式返回集合3中所有对象 NSArray *array2 = [set3 allObjects]; NSEnumerator *enumArray = [array2 objectEnumerator]; id obj; while (obj = [enumArray nextObject]) { NSLog(@"%@", obj); } // 返回集合3中任意一个对象 id tmp = [set3 anyObject]; NSLog(@"%@", tmp); // 集合3中是否包含内容为2的字符串对象,包含返回YES,不包含返回NO NSLog(@"判断是否存在:%hhd", [set3 containsObject:@"2"]); // 集合1中和集合3中是否包含有相同的元素对象,有返回YES,没有返回NO NSLog(@"判断是否有相同:%hhd", [set1 intersectsSet:set3]); // 判断集合2和集合3中的元素是否完全匹配,是返回YES,否返回0 NSLog(@"判断是否完全匹配:%hhd", [set2 isEqualToSet:set3]); // 判断集合3是否是集合4的子集,是返回YES,否返回NO NSSet *set4 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", @"one", @"two", @"a", nil]; NSLog(@"判断子集:%hhd", [set3 isSubsetOfSet:set4]); // 为集合5追加一个元素,返回新的集合6 NSSet *set5 = [NSSet setWithObjects:@"1", @"2", nil]; NSSet *set6 = [set5 setByAddingObject:@"one"]; NSEnumerator *enumSet6 = [set6 objectEnumerator]; id objSet6; while (objSet6 = [enumSet6 nextObject]) { NSLog(@"集合6:%@", objSet6); } // 合并集合1和2,返回新的集合7 NSSet *set7 = [set1 setByAddingObjectsFromSet:set2]; NSLog(@"%@", set7); // 合并集合1和数组对象array,并生成新的集合8 NSSet *set8 = [set1 setByAddingObjectsFromArray:array]; NSLog(@"%@", set8); ///可变集合/// // 创建空的集合 NSMutableSet *muSet1 = [NSMutableSet set]; NSLog(@"%@", muSet1); NSMutableSet *muSet2 = [NSMutableSet setWithObjects:@"1", @"2", nil]; NSMutableSet *muSet3 = [NSMutableSet setWithObjects:@"a", @"2", nil]; // 集合2“减去”集合3中的元素 [muSet2 minusSet:muSet3]; NSLog(@"%@", muSet2); // 集合4和集合3的交集 NSMutableSet *muSet4 = [NSMutableSet setWithObjects:@"a", @"b", nil];// 注意这里是intersectSet不是intersectsSet [muSet4 intersectSet:muSet3]; NSLog(@"%@", muSet4); // 集合4和集合3的并集 [muSet4 unionSet:muSet3]; NSLog(@"%@", muSet4); // 将空集合1设置成集合3中的内容 [muSet1 setSet:muSet3]; NSLog(@"%@", muSet1); // 根据数组增加集合元素 [muSet4 addObjectsFromArray:array]; NSLog(@"%@", muSet4); // 移除指定元素 [muSet4 removeObject:@"1"]; NSLog(@"%@", muSet4); // 移除所有元素 [muSet4 removeAllObjects]; NSLog(@"%@", muSet4); ///练习:倒置字符串/// NSMutableString *muString = [[NSMutableString alloc] initWithString:@"abc123.xyz789"]; int length = (int)muString.length; for (int i = 0, j = length - 1; i < j; i++, j--) { NSRange rangI = {i, 1}; NSRange rangJ = {j, 1}; id tmp1 = [muString substringWithRange:rangI]; [muString replaceCharactersInRange:rangI withString:[muString substringWithRange:rangJ]]; [muString replaceCharactersInRange:rangJ withString:tmp1]; } NSLog(@"字符串的倒置:%@", muString); } return 0;}

转载于:https://my.oschina.net/are1OfBlog/blog/324538

你可能感兴趣的文章
SecureCRT使用
查看>>
解决一个页面同时存在ScrollView和Viewpager时viewpager页面滑动不畅
查看>>
鼠标滚轮事件
查看>>
无线CAPWAP隧道加密方式
查看>>
Docker系列(八):Dockerfile镜像仓库
查看>>
轻快的VIM(一):移动
查看>>
愁眉莫展-如何去学习呐
查看>>
linux下系统软件包管理(rpm、yum、源码包安装)
查看>>
CentOS 下安装网卡流量监控工具iftop
查看>>
Linux Xen 管理工具
查看>>
python核心编程笔记chapter 12
查看>>
movabs
查看>>
怎么样才能彻底将Mac电脑中无用的文件删除
查看>>
七雄q传答题答案大汇总
查看>>
三层交换机工作原理
查看>>
python学习笔记-Day13-- 前端知识 html
查看>>
XML之XML解析方法对比总结
查看>>
Java实现websocket与微信小程序连接
查看>>
RMAN备份恢复管理工具
查看>>
flex布局
查看>>