OC基礎資料型別 集合 NSSet

2021-06-28 09:10:34 字數 3224 閱讀 6595

1、集合:集合(nsset)和陣列(nsarray)有相似之處,都是儲存不同的物件的位址;不過nsarray是有序的集合,nsset是無序的集合。

集合是一種雜湊表,運用雜湊演算法,查詢集合中的元素比陣列速度更快,但是它沒有順序。

1 nsset * set = [[nsset alloc] initwithobjects:@"

one",@"

two",@"

three

",@"

four

", nil];

2 [set count]; //

返回集合中物件的個數

判斷集合中是否擁有某個元素

1

//判斷集合中是否擁有@「two」

2 bool ret = [set containsobject:@"

two"];

判斷兩個集合是否相等

1 nsset * set2 = [[nsset alloc] initwithobjects:@"

one",@"

two",@"

three

",@"

four

", nil];2//

判斷兩個集合是否相等

3 bool ret = [set isequaltoset:set2];

判斷set是否是set2的子集合

1 nsset * set2 = [[nsset alloc] initwithobjects:@"

one",@"

two",@"

three

",@"

four

",@"

five

", nil];2//

判斷set是否是set2的子集合

3 bool ret = [set issubsetofset:set2];

集合也可以用列舉器來遍歷

1

//集合也可以用列舉器來遍歷

2 nsenumerator * enumerator = [set

objectenumerator];

3 nsstring *str;

4while (str =[enumerator nextobject])

通過陣列來初始化集合(陣列轉換為集合)

1 nsarray * array = [[nsarray alloc] initwithobjects:@"

one",@"

two",@"

three

",@"

four

", nil];

2 nsset * set = [[nsset alloc] initwitharray:array];

集合轉換為陣列

1 nsarray * array2 = [set allobjects];
2、可變集合nsmutableset

1

//可變集合nsmutableset

2 nsmutableset * set =[[nsmutableset alloc] init];

3 [set addobject:@"

one"

];4 [set addobject:@"

two"

];5 [set addobject:@"

two"]; //

如果新增的元素有重複,實際只保留乙個

刪除元素

1

//刪除元素

2 [set removeobject:@"

two"

];3 [set removeallobjects];

將set2中的元素新增到set中來,如果有重複,只保留乙個

1

//將set2中的元素新增到set中來,如果有重複,只保留乙個

2 nsset * set2 = [[nsset alloc] initwithobjects:@"

two",@"

three

",@"

four

", nil];

3 [set unionset:set2];

刪除set中與set2相同的元素

1 [set minusset:set2];
3、指數集合(索引集合)nsindexset

1

//指數集合(索引集合)nsindexset

2 nsindexset * indexset = [[nsindexset alloc] initwithindexesinrange:nsmakerange(1, 3)]; //

集合中的數字是123

根據集合提取陣列中指定位置的元素

1

//根據集合提取陣列中指定位置的元素

2 nsarray * array = [[nsarray alloc] initwithobjects:@"

one",@"

two",@"

three

",@"

four

", nil];

3 nsarray * newarray = [array objectsatindexes:indexset]; //

返回@"two",@"three",@"four"

4、可變指數集合nsmutableindexset

1 nsmutableindexset *indexset =[[nsmutableindexset alloc] init];

2 [indexset addindex:0

]3 [indexset addindex:3

];4 [indexset addindex:5];5

//通過集合獲取陣列中指定的元素

6 nsarray *array = [[nsarray alloc] initwithobjects:@"

one",@"

two",@"

three

",@"

four

",@"

five

",@"

six"

, nil];

7 nsarray *newarray = [array objectsatindexes:indexset]; //

返回@"one",@"four",@"six"

OC基礎資料型別 NSSet

1 集合 集合 nsset 和陣列 nsarray 有相似之處,都是儲存不同的物件的位址 不過nsarray是有序的集合,nsset是無序的集合。集合是一種雜湊表,運用雜湊演算法,查詢集合中的元素比陣列速度更快,但是它沒有順序。nsset set nsset alloc initwithobject...

OC資料型別

oc是增強了c的特性,所以在變數和基本資料型別上基本與c一致。在oc中變數命名有如下規則 由字母 數字 下劃線 符號組成 必須以字母 下劃線 符號開頭 大小寫敏感 在oc中定義變數的時候不能使用oc的保留字,oc的保留字如下 oc中有如下基本資料型別 int 宣告整型變數 double 宣告雙精度變...

OC 基礎資料型別轉bytes

ios 系統庫提供了簡便的api可以實現基礎資料型別和nsdata的轉化,讀data.bytes可以直接獲取到。以int為例 int convert to nsdata int num 10 nsdata data nsdata datawithbytes num length sizeof num...