NSSet基本使用

  1 int main(int argc, const char * argv[]) {
  2     @autoreleasepool {
  3
  4         //创建一个集合对象  注:如果集合中写了两次或多次同一个对象 打印只能看到一个
  5         NSSet *set1 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"three", nil];
  6         //注:集合里面最外层先是大括号 然后小括号
  7         //集合是无序 它是哈希散列排序  《数据结构》哈希算法
  8         NSLog(@"%@",set1);
  9
 10         //集合中元素的个数
 11         NSLog(@"集合的个数:%ld",[set1 count]);
 12
 13
 14         //是否包含某个元素
 15         BOOL contains = [set1 containsObject:@"two"];
 16         NSLog(@"是否包含:%d",contains);
 17
 18         //两个集合是否相等
 19         NSSet *set2 = [NSSet setWithObjects:@"one",@"two",@"three",@"four", nil];
 20         BOOL isEqual = [set1 isEqualToSet:set2];
 21
 22         if (isEqual) {
 23             NSLog(@"两个集合相等");
 24         }else {
 25             NSLog(@"两个集合不相等");
 26         }
 27
 28
 29         //判断第一个集合是否是第二个集合的子集合
 30
 31         BOOL isSubset = [set1 isSubsetOfSet:set2];
 32         NSLog(@"是否是子集合:%d",isSubset);
 33
 34
 35         //枚举遍历   for   while   do-while  forin   枚举器
 36         //取set2的集合枚举器 经常用枚举器遍历集合
 37         NSEnumerator *enumerator = [set2 objectEnumerator];
 38         NSString *str;
 39         //nextObject 下一个元素
 40         while (str = [enumerator nextObject]) {
 41             NSLog(@"%@",str);
 42         }
 43
 44         //通过数组的方式去创建集合  (数组转成集合)
 45         NSSet *set3 = [NSSet setWithArray:@[@"one",@"five"]];
 46         NSLog(@"set3:%@",set3);
 47         //查看集合所有元素 返回一个数组 (集合转成数组)
 48         NSArray *array1 = [set3 allObjects];
 49         NSLog(@"array1:%@",array1);
 50
 51
 52         /********可变集合*******/
 53         //创建空的集合
 54         NSMutableSet *mSet = [[NSMutableSet alloc] init];
 55         NSLog(@"%@",mSet);
 56
 57         //增
 58         //增加集合元素
 59         [mSet addObject:@"one"];
 60         [mSet addObject:@"one"];
 61         [mSet addObject:@"two"];
 62         [mSet addObject:@"three"];
 63         NSLog(@"%@",mSet);
 64
 65         //删
 66         //删除集合元素
 67         [mSet removeObject:@"one"];
 68         NSLog(@"%@",mSet);
 69
 70
 71         //集合中添加集合
 72         [mSet unionSet:set2];
 73         NSLog(@"------%@",mSet);
 74
 75         //集合中删除集合  删除的时候 如果要删除集合里面有多的集合元素,mSet没有此集合元素 删除的时候不会崩溃
 76 //        NSSet *_set = [NSSet setWithObjects:@"one",@"two",@"three",@"four",@"1", nil];
 77
 78 //        [mSet minusSet:_set];
 79 //        NSLog(@"======%@",mSet);
 80
 81         /********指数集合或索引集合**********/
 82         //继承NSObject
 83         //创建一个索引集合  通过在指定范围创建索引集合 注:range千万别超范围会崩溃
 84 //        NSIndexSet *set4 = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(2, 4)];
 85
 86         //创建一个空的可变的索引集合
 87         NSMutableIndexSet *set5 = [[NSMutableIndexSet alloc] init];
 88         //给可变索引集合添加下标
 89         [set5 addIndex:0];
 90         [set5 addIndex:2];
 91         [set5 addIndex:3];
 92         [set5 addIndex:6];
 93
 94
 95         NSArray *allArray = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven", nil];
 96         //通过索引集合得到数组(索引range范围内的数组元素)
 97         NSArray *subArray = [allArray objectsAtIndexes:set5];
 98         NSLog(@"++++++++%@",subArray);
 99
100
101     }
102     return 0;
103 }
时间: 2024-10-05 20:19:14

NSSet基本使用的相关文章

NSSet集合 无序的 不能重复的

// // main.m // NSSet集合 // // Created by MAC on 15/12/15. // Copyright © 2015年 MAC. All rights reserved. // #import <Foundation/Foundation.h> //1.不能重复 //2.无序的 int main(int argc, const char * argv[]) { @autoreleasepool { //无序的 效率高比数组高 但是不能索引 NSArray

OC中的集合NSSet

1 集合NSSet(无序) 2 本质上是哈希表,采用散列算法来查找 3 每个元素只有一次,元素是无序的 4 5 创建 每个元素可以是任意的对象 6 NSSet *set=[[NSSet alloc] initWithObjects:@"one",@"two", 7 @"three",@"four",nil]; 8 NSSet *set2=[[NSSet alloc] initWithObjects:@"one&quo

iOS开发-OC篇-NSSet,NSNumber

最近回顾了OC的一些基本知识,发现确实遗忘了很多重要的东西,今天整理了一些小的知识点,和大家分享一下. iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. 1.NSNumber包装类 1>  普通初始化 NSNumber * num1 = [[NSNumber alloc] initWithInt:20]; NSNumber * num2 = [NSNumber numberWithChar:'a']; 2>字面量初始化 NSNumber * num3 =

NSSet和NSMutableSet 确保数据的唯一性--备

NSSet和NSMutableSet是无序的, 但是它保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表,所以可以常数时间内查找一个数据. 1.NSSet的使用 [NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造[NSSet setWithArray:(NSArray *)array];用数组构造[NSSet setWithObjects:...]:创建集合对象,并且初始化集合中的数值,结尾必需使用nil标志.[set cou

用法总结:NSArray,NSSet,NSDictionary-备用

Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合      (集合)NSDictionary用于键值映射(字典)以上三种集合类是不可变的(一旦初始化后,就不能改变) 以下是对应的三种可变集合类(这三种可变集合类是对应上面三种集合类的子类):NSMutableArrayNSMutableSet  可修改的集合.主要用于集合运算(并集,交集,差集)NSMutableDict

Foundation -----&gt;NSSet

1.集合类     NSString *s1 = @"zhangsan";     NSString *s2 = @"lisi";     NSString *s3 = @"zhangsan";          1.集合的创建     NSSet *set1 = [NSSet setWithObjects:s1,s2,s3, nil];     NSSet *set2 = [[NSSet alloc] initWithObjects:s1,s2

[Objective-C] 010_Foundation框架之NSSet与NSMutableSet

在Cocoa Foundation中的NSSet和NSMutableSet ,和NSArray功能性质一样,用于存储对象属于集合.但是NSSet和NSMutableSet是无序的, 保证数据的唯一性,当插入相同的数据时,不会有任何效果. NSSet 初始化及常用操作 #import "AppDelegate.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIAppli

NSArray(二) 、 NSMutableArray 、 NSSet 、 NSMutableSet

1 创建五个学生对象,放入数组并遍历 1.1 问题 创建一个自定义类TRStudent,为该类生成五个对象.把这五个对象存入一个数组当中,然后遍历数组. 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:定义类TRStudent 首先,在Day03工程中新添加TRStudent.h文件,用于定义新的类TRStudent. 代码如下所示: #import <Foundation/Foundation.h> @interface TRStudent : NSObject @property(

Object -C NSSet -- 笔记

// //  main.m //  NSSET // //  Created by facial on 25/8/15. //  Copyright (c) 2015 facial_huo. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@&quo

IOS阶段学习第16天笔记(Category、NSSet、NSIndexSet的操作)

IOS学习(OC语言)知识点整理 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 例如: //宏定义 #define TOBJ(n) [NSNumber numberWithInt:n] NSSet *set1=[[NSSet alloc]initWithObjects:TOBJ(2),TOBJ(3),TOBJ(3),TOBJ(1),TOBJ(5), nil]; 2)用类方法创