1、求数组的 交集,并集,差集

NSArray *array1 = @[@"1",@"2",@"3"];
NSArray *array2 = @[@"1",@"5",@"6"];
NSMutableSet *set1 = [NSMutableSet setWithArray:array1];
NSMutableSet *set2 = [NSMutableSet setWithArray:array2]; [set1 unionSet:set2]; //取并集后 set1中为1,2,3,5,6
[set1 intersectSet:set2]; //取交集后 set1中为1
[set1 minusSet:set2]; //取差集后 set1中为2,3,5,6

2、判断一个数组是否为另一个数组的子集

NSArray *array3 = @[@"1",@"2"];
NSArray *array4 = @[@"1",@"2",@"6"];
NSSet *set3 = [NSSet setWithArray:array3];
NSSet *set4 = [NSSet setWithArray:array4]; BOOL isSub = [set3 isSubsetOfSet:set4]; //isSub为YES

3、判断某个对象是否在某个数组中

BOOL isExist = [array3 containsObject:@"1"]; //isExist为YES

4、补充说明:

以下三种集合类是不可变的(一旦初始化后,就不能改变)

NSArray 用于对象有序集合(数组)
NSSet 用于对象无序集合 (集合)
NSDictionary用于键值映射(字典)

以下三种是可变集合类(这三种可变集合类是对应上面三种集合类的子类):

NSMutableArray
NSMutableSet 可修改的集合。主要用于集合运算(并集,交集,差集)
NSMutableDictionary 允许用户添加和删除key和value

iOS 数组集合操作(交集,并集,差集,子集)的更多相关文章

  1. 如何求ArrayList集合的交集 并集 差集 去重复并集

    需要用到List接口中定义的几个方法: addAll(Collection<? extends E> c) :按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾 ...

  2. Oracle集合运算符 交集 并集 差集

     集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集  一.union求并集,公共部分只有包含一次 例:求emp表ename中含’A‘或含有‘M’ SQL&g ...

  3. C# 取两个集合的交集\并集\差集

    交集:Intersect 并集:Union 差集:Except , , , , , }; , , , ,,, }; var C= A.Intersect(B); //交集 { 3, 4, 5, 6 } ...

  4. python 集合运算交集&并集&差集

    差集>>> #两个列表的差集3 >>> ret3 = list(set(a) ^ set(b)) #两个列表的差集 >>> ret4=list(s ...

  5. java 两个list 交集 并集 差集 去重复并集

    前提需要明白List是引用类型,引用类型采用引用传递. 我们经常会遇到一些需求求集合的交集.差集.并集.例如下面两个集合: List<String> list1 = new ArrayLi ...

  6. lodash用法系列(1),数组集合操作

    Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.clou ...

  7. spark之交集并集差集拉链

    spark之交集并集差集拉链 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster(&qu ...

  8. (java/javascript) list 交集 并集 差集 去重复并集

    java list 交集 并集 差集 去重复并集 package com; import java.util.ArrayList; import java.util.Iterator; import ...

  9. Python 求两个文本文件以行为单位的交集 并集 差集

    Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...

随机推荐

  1. Minor GC和Full GC区别(转)

    http://blog.csdn.net/u010796790/article/details/52213708   概念: 新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Ja ...

  2. 关于URL和http协议,http消息格式

    转自:http://crystal2012.iteye.com/blog/1447845 在WWW(全球资讯网)中想要连结到某个网页,便需要给浏览器一个位址,而URL在此的功能就是告知浏览器某个资源在 ...

  3. Swoole学习(六)Swoole之定时器的创建与清除

    环境:Centos6.4,PHP环境:PHP7,Swoole2.1(在指定的时间后执行函数,需要1.7.7或更高版本) <?php //----------------------------- ...

  4. ElasticSearch(三) ElasticSearch中文分词插件IK的安装

    正因为Elasticsearch 内置的分词器对中文不友好,会把中文分成单个字来进行全文检索,所以我们需要借助中文分词插件来解决这个问题. 一.安装maven管理工具 Elasticsearch 要使 ...

  5. xshell ssh 上传文件

    一.通过xshell  ssh 上传文件 [lxk@localhost ~]$ yum install lrzsz 安装 [lxk@localhost ~]$ rz 上传文件

  6. Java-JVM调优常见配置举例

    常见配置举例 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统 下,一般限制在1.5G~ ...

  7. 20145328 《Java程序设计》第7周学习总结

    20145328 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 Lambda 12.1 认识Lambda语法 Lambda 教材的引入循序渐近.深入浅出 Lambda去重 ...

  8. 20145231熊梓宏《网络对抗》逆向及Bof基础

    20145231网络对抗<逆向及Bof基础> 实验目的与要求 1.本次实践的对象是一个名为pwn1的linux可执行文件. 2.若该程序正常执行,则main函数会调用foo函数,foo函数 ...

  9. openssl 编译

    不要费事编译了,直接下载吧! https://www.npcglib.org/~stathis/blog/precompiled-openssl/ 下载 openssl https://www.ope ...

  10. NOIP2015 T4 推销员 贪心+堆优化

    前几天在学堆,这个数据结构貌似挺简单的,但是我看了很久啊QAQ... 今天算是搞懂了吧...于是想到了这道题...(当初悄悄咪咪看题解记得一点) 点我看题 放洛谷的题... 题意的话,大概就是有n个房 ...