1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
//
// main.m
// NSSet
//
// Created by Passer-by on 15-3-23.
// Copyright (c) 2015年 MAC. All rights reserved.
//
#
import
<foundation foundation.h=
""
>
int
main(
int
argc,
const
char
* argv[])
{
@autoreleasepool
{
/*
NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
* 本身都不可变,都有一个可变的子类
2> 不同点
* NSArray有顺序,NSSet没有顺序
*/
NSSet *set1 = [NSSet setWithObjects:@
"a"
, @
"b"
, @
"c"
, @
"d"
, nil];
NSSet *set2 = [[NSSet alloc] initWithObjects:@
"1"
, @
"2"
, @
"3"
, nil];
NSArray *array = [NSArray arrayWithObjects:@
"a"
, @
"b"
, @
"c"
, nil];
NSSet *set3 = [NSSet setWithArray:array];
NSLog(@
"set1 :%@"
, set1);
NSLog(@
"set2 :%@"
, set2);
NSLog(@
"set3 :%@"
, set3);
//获取集合个数
NSLog(@
"set1 count :%d"
, set1.count);
//以数组的形式获取集合中的所有对象
NSArray *allObj = [set2 allObjects];
NSLog(@
"allObj :%@"
, allObj);
//获取任意一对象
NSLog(@
"anyObj :%@"
, [set3 anyObject]);
//是否包含某个对象
NSLog(@
"contains :%d"
, [set3 containsObject:@
"obj2"
]);
//是否包含指定set中的对象
NSLog(@
"intersect obj :%d"
, [set1 intersectsSet:set3]);
//是否完全匹配
NSLog(@
"isEqual :%d"
, [set2 isEqualToSet:set3]);
//是否是子集合
NSLog(@
"isSubSet :%d"
, [set3 isSubsetOfSet:set1]);
NSSet *set4 = [NSSet setWithObjects:@
"a"
, @
"b"
, nil];
NSArray *ary = [NSArray arrayWithObjects:@
"1"
, @
"2"
, @
"3"
, @
"4"
, nil];
NSSet *set5 = [set4 setByAddingObjectsFromArray:ary];
NSLog(@
"addFromArray :%@"
, set5);
NSMutableSet *mutableSet1 = [NSMutableSet setWithObjects:@
"1"
, @
"2"
, @
"3"
, nil];
NSMutableSet *mutableSet2 = [NSMutableSet setWithObjects:@
"a"
, @
"2"
, @
"b"
, nil];
NSMutableSet *mutableSet3 = [NSMutableSet setWithObjects:@
"1"
, @
"c"
, @
"b"
, nil];
//集合元素相减
[mutableSet1 minusSet:mutableSet2];
NSLog(@
"minus :%@"
, mutableSet1);
//只留下相等元素
[mutableSet1 intersectSet:mutableSet3];
NSLog(@
"intersect :%@"
, mutableSet1);
//合并集合
[mutableSet2 unionSet:mutableSet3];
NSLog(@
"union :%@"
, mutableSet2);
//删除指定元素
[mutableSet2 removeObject:@
"a"
];
NSLog(@
"removeObj :%@"
, mutableSet2);
//删除所有数据
[mutableSet2 removeAllObjects];
NSLog(@
"removeAll :%@"
, mutableSet2);
}
return
0
;
}
</foundation>
|
ios笔记-NSSet
最新推荐文章于 2020-11-23 09:54:10 发布