NSSet 总结 - iOS

2024-02-27 05:58
文章标签 总结 ios nsset

本文主要是介绍NSSet 总结 - iOS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.简介

NSSet 集合和数组(NSArray)相似,都是存储不同对象的地址;

不过 NSArray 是有序的集合,而 NSSet 是无序的集合;

其中,集合是一种哈希表,运用散列算法查找集合中的元素;

效率相对比起数组速率更快,但它没有顺序.

NSSet *set = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];

[set count];//返回集合中对象的个数

NSMutableSet *mSet = [NSMutableSet setWithCapacity:0];

注:若在设置时放入两个相同的元素,系统会自动删掉一个元素.


二.常用方法

1.判断集合中是否拥有某个元素 Element

//判断集合中是否拥有@“two”

BOOL ret = [setcontainsObject:@"two"];

2.判断两个集合是否相等

NSSet * set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];//判断两个集合是否相等BOOL ret = [setisEqualToSet:set2];

3.判断 set 是否是 set2 的子集

NSSet * set2 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil];//判断set是否是set2的子集合BOOL ret = [setisSubsetOfSet:set2];

4.集合也可以用枚举器来遍历

//集合也可以用枚举器来遍历NSEnumerator * enumerator = [setobjectEnumerator];NSString *str;while(str =[enumerator nextObject]) {……}

5.通过数组来初始化集合(数组转为集合)

NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];NSSet *set= [[NSSet alloc] initWithArray:array];

6.集合转换为数组

NSArray * array2 = [setallObjects];

7.可变集合 NSMutableSet

//可变集合NSMutableSetNSMutableSet *set=[[NSMutableSet alloc] init];[setaddObject:@"one"];[setaddObject:@"two"];[setaddObject:@"two"];//如果添加的元素有重复,实际只保留一个

8.删除元素

//删除元素[setremoveObject:@"two"];[setremoveAllObjects];

9.将 set2 中的元素添加到 set 中来,若重复则保留一个

//将set2中的元素添加到set中来,如果有重复,只保留一个NSSet * set2 = [[NSSet alloc] initWithObjects:@"two",@"three",@"four", nil];[setunionSet:set2];

10.删除 set 中与 set2 相同的元素

[setminusSet:set2];

11.指数集合(索引集合)NSIndexSet

//指数集合(索引集合)NSIndexSetNSIndexSet * indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1,3)];//集合中的数字是123

12.根据集合提取数组中指定位置的元素

//根据集合提取数组中指定位置的元素NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];NSArray * newArray = [array objectsAtIndexes:indexSet];//返回@"two",@"three",@"four"

13.可变指数集合 NSMutableIndexSet

NSMutableIndexSet *indexSet =[[NSMutableIndexSet alloc] init];[indexSet addIndex:0][indexSet addIndex:3];[indexSet addIndex:5];//通过集合获取数组中指定的元素NSArray *array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six", nil];NSArray *newArray = [array objectsAtIndexes:indexSet];//返回@"one",@"four",@"six"


这篇关于NSSet 总结 - iOS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/751409

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)