OC基礎 OC三大基本資料結構 NSArray

2021-07-05 10:37:54 字數 2728 閱讀 8921

一、oc三大基本資料結構之nsarray

基類:nsarray

不可變陣列,陣列一旦建立,陣列的元素個數和順序不可變。

子類:nsmutablearray

可變陣列,繼承了基類的方法,又有自己的關於修改元素個數和順序的方法。

二、nsarray的使用

1.建立陣列

nsarray * array1 = [[nsarray alloc] initwithobjects:@"one",@"two",@"three", nil];

nslog(@"%s輸出:%@","%@",array1);

2.遍歷陣列的三種方法

列舉器法(正序列舉器和倒序列舉器)、快速列舉法、使用i值

//遍歷陣列,列舉器法enumerator

nsenumerator * enu = [array1 objectenumerator];

nsstring * str;

while(str = [enu nextobject])

//倒序列舉器法

nsenumerator * enu2 = [array1 reverseobjectenumerator];

while (str = [enu2 nextobject])

//遍歷陣列,快速列舉法 id obj in array

for(id obj2 in array1)

//遍歷陣列,使用i值

id obj1;

int i;

for(i = 0 ; i < [array1 count]; i++)

3.%@的理解

使用%@輸出,實際上是輸出description方法的返回值,desctiption方法是object類的方法。

我們可以重寫該方法,類驗證自己的想法。

dog.h

#import @inte***ce dog : nsobject

-(nsstring *)description;

@end

dog.m

#import "dog.h"

@implementation dog

-(nsstring *)description

@end

main.m

#import #import "dog.h"

int main(int argc, const char * argv)

return 0;

}

三、nsmutablearray的使用

//1.建立,形式1

nsmutablearray * mutablearray = [[nsmutablearray alloc] initwithobjects:@"one",@"two", nil];

[mutablearray addobject:@"three"];

nslog(@"建立可變陣列:%@",mutablearray);

//1.建立,形式2

nsmutablearray * mutablearray2 =[[nsmutablearray alloc] init];

[mutablearray2 addobject:@"one"];

[mutablearray2 addobject:@"two"];

[mutablearray2 addobject:@"three"];

nslog(@"建立可變陣列2%@", mutablearray2);

//2.刪除元素

//[mutablearray removeallobjects];

//[mutablearray removelastobject];

//[mutablearray removeobjectatindex:0];

//[mutablearray removeobjectsinrange:nsmakerange(0, 2)];

//3.改變元素的順序--交換元素的位置

[mutablearray exchangeobjectatindex:0 withobjectatindex:2];

//nslog(@"%@", mutablearray);

//4.字串分割成陣列

nsarray * array3 = [string componentsseparatedbystring:@" "];

nslog(@"字串分割陣列:%@", array3);

//將分割的陣列倒序

nsmutablearray * mutablearray3 = [[nsmutablearray alloc] init];

nsenumerator * enu3 = [array3 reverseobjectenumerator];//對哪個陣列進行列舉,使用哪個陣列建立列舉器

id obj4;

while(obj4 = [enu3 nextobject])

nslog(@"字串分割陣列並倒序:%@",mutablearray3);

//5.陣列拼接成字串

nsstring * newstirng =[array3 componentsjoinedbystring:@"-"];

nslog(@"%@", newstirng);

@詩未冷學習部落格

OC基本資料型別及三種程式結構

oc中常用資料型別字首 ns,例如 nsstring 字元 nsinteger 整型 nsuinteger 無符號整型 nsrange 表示範圍的結構體 cgfloat 浮點型 cgpoint,cgsize,cgrect,nsarray,nsdictionary,nsdate 美國日期 nsdata...

基本資料結構說明(三)

3.樹的說明 樹 t k是包含n個結點的有窮集合 n 0 關係r滿足以下條件 1 有且僅有乙個結點k0 k,它對於關係r來說沒有前驅結點,結點k0稱作樹的根。2 除結點k0外,k中的每個結點對於關係r來說都有且僅有乙個前驅結點。3 k中每個結點對於關係r來說可以有多個後繼結點。我這裡主要討論的是二叉...

(三)基本資料結構 佇列

三 具體 實現 陣列佇列的實現 佇列作為最常見的資料結構之一,其作用不言而喻。我將自定義乙個佇列的類,該佇列是基礎之前所學習的動態陣列實現的。本文實現了陣列佇列與迴圈佇列兩種資料結構。由於棧是fifo first in first out 型別,則棧的增刪只存在入隊enqueue 和出隊dequeu...