一、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...