NSSet

1.NSSet是Hash表使用散列算法而生成,如果集合中又两个相同的元素,那么只生成后面的那一个

2.声明一个NSSet

NSSet *set = [[[NSSet alloc] initWithObjects:@"one",@"two",@"three", nil] autorelease];
NSSet *set1 = [[[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"five", nil] autorelease];
NSLog(@"%@",set);

2.1.获得集合中的元素个数

NSLog(@"集合中的元素个数是:%lu",[set count]);

2.2.查询集合中的是否包含这个元素

BOOL ret = [set containsObject:@"one"];
NSLog(@"集合中包含 one 元素吗?:%@",[email protected]"是":@"否");
BOOL ret1 = [set containsObject:@"five"];
NSLog(@"集合中包含 five 元素吗?:%@",[email protected]"是":@"否");

 2.3.、判断第一个集合是否是第二个集合的子集合

BOOL judge1 = [set isSubsetOfSet:set1];
NSLog(@"第一个集合是第二个集合的子集合吗?:%@",[email protected]"是":@"否");

2.4.集合的遍历

NSEnumerator * enumerator = [set1 objectEnumerator];
NSString * mystr;
while(mystr = [enumerator nextObject]){
     NSLog(@"集合中的元素是:%@",mystr);
}

2.5.通过数组来创建一个集合

NSArray * array = [[[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil] autorelease];
NSSet * arraySet = [[NSSet alloc] initWithArray:array];
NSLog(@"通过数组的元素生成的集合:%@",arraySet);

 2.6.将集合生成数组

NSArray * setArray = [arraySet allObjects];
NSLog(@"将集合生成的数组是:%@",setArray);

3.可变几何(NSMutableSet)

3.1.NSMutableSet是NSSet的子类,除了有NSSet的方法之外,还有增删改元素的方法

3.2.如果添加的元素有重复,实际上只是保留一个元素

 NSMutableSet * mutableSet = [[[NSMutableSet alloc] init] autorelease];
[mutableSet addObject:@"hahha"];
[mutableSet addObject:@"wowo"];
[mutableSet addObject:@"nana"];
NSLog(@"mutableSet是:%@",mutableSet);

3.3.删除元素

[mutableSet removeObject:@"hahha"];
NSLog(@"mutableSet是:%@",mutableSet);

 3.4.将一个集合中的元素添加到另外一个集合中(将两个几个连接起来生成一个大的集合)

[mutableSet unionSet:set1];
NSLog(@"mutableSet是:%@",mutableSet);

3.5.在一个集合中,将另一个集合中包含的元素删除

[mutableSet minusSet:set];
NSLog(@"mutableSet是:%@",mutableSet);

4.索引集合

NSIndexSet * indexSet = [[[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(2, 2)]autorelease];
NSArray * newArray = [array objectsAtIndexes:indexSet];
NSLog(@"通过索引集合生成的数组是:%@",newArray);

  

时间: 2024-10-09 02:39:19

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)用类方法创