程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> OC:OC中的集合類-NSSet(二)

OC:OC中的集合類-NSSet(二)

編輯:關於C語言

OC:OC中的集合類-NSSet(二)


/*

NSSet 集合

在一個NSSet對象中,某個特定的對象只能出現一次。

NSSet對象最大的用處是檢查某個對象是否存在。速度快

NSSet與NSArray比較

相同:1.都用來存放OC對象

2.都不可以直接存儲基本數據類型、結構體、枚舉

3.本身都不可變,但是都有一個可變的子類

區別:1.NSArray是有順序的, NSSet是無序的

2.NSSet裡面的元素是不重復的

*/

//========================================================

//創建一個空的set,裡面不能再添加元素

// NSSet *set1 = [NSSet set];

//創建set,裡面有一個元素

NSSet *set2 = [NSSet setWithObject:@"abc"];

//創建多個元素的set

Car *car1 = [Car new];

Car *car2= [Car new];

NSSet *set3 = [NSSet setWithObjects:car1,car2,@"abc", nil];

//得到set元素個數

NSUInteger count = set3.count;

[set3 count];

NSLog(@"%ld",count);

//打印set (打印出來的元素順序不固定)

NSLog(@"%@",set3);

//獲取set中全部的元素 返回值是NSArray

NSArray *ary = [set3 allObjects];

//取set中的一個元素 沒有順序,任意取出一個元素

[set3 anyObject];

//判斷集合中是否包含某個對象

[set3 containsObject:@"abc"];//返回BOOL型

if([set3 containsObject:@"abc"])

{

NSLog(@"set 中有該對象");

}

else

{

NSLog(@"set 中不包含該對象");

}

[set3 member:@"abc"];//返回BOOL型

if([set3 member:@"abc"])

{

NSLog(@"set 中有該對象");

}

else

{

NSLog(@"set 中不包含該對象");

}

//==========================================================

// NSMutableSet 可變集合

//初始化可變集合

NSMutableSet *set4 = [NSMutableSet set];

//添加元素

[set4 addObject:[Car new]];

//把一個數組中的元素添加到當前set

NSArray *ary2 = @[@"jereh",@"ios"];

[set4 addObjectsFromArray:ary2];

NSLog(@"%@",set4);

//刪除。由於沒有順序,所以不能按照索引位置刪除確定的對象

//刪除一個元素

[set4 removeObject:@"ios"];

//刪除全部元素

[set4 removeAllObjects];

//遍歷set(用快速遍歷)

NSMutableSet *set5 = [NSMutableSet setWithObjects:@"a",@"b",@"c",@"d", nil];

NSArray *ary3 = @[@"jere"];

[set5 addObjectsFromArray:ary2];

[set5 addObjectsFromArray:ary3];

for (id obj in set5) {

NSLog(@"%@",obj);

}

//將一個集合的所有元素添加到當前集合

NSLog(@"%@",set4);

NSLog(@"%@",set5);

NSMutableSet *set6 = [NSMutableSet setWithObject:@"I love you."];

[set6 unionSet:set5];

NSLog(@"%@",set6);

//判斷兩個集合是否相等

if ([set5 isEqualToSet:set6] == YES) {

NSLog(@"兩個集合相等");

}

else

{

NSLog(@"兩個集合不相等");

}

//判斷兩個集合的交集是否存在至少一個元素

[set6 intersectsSet:set5]; //BOOL

[set6 intersectSet:set5]; //void

if ([set6 intersectsSet:set5] == YES) {

NSLog(@"兩個集合有交集 ");

}

else

{

NSLog(@"兩個集合沒有交集");

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved