陣列的建立及操作

2021-08-20 15:08:49 字數 2910 閱讀 6077

#import

//nsarry 建立不可變陣列物件

//陣列就是物件的有序集合

//陣列儲存的是物件的位址(物件的引用)

//不可變陣列一旦被建立,不可以繼續新增、刪除或者修改

//陣列中元素可以為不同型別物件

//陣列的訪問通過陣列的下標訪問,下標從0開始

int main(int argc, const

char * argv) {

@autoreleasepool{

nsarray *array1 = @[

@"one", @"two", @"there",[nsnumber

numberwithint:123]];

nslog(@"array1 = %@", array1);

//陣列的建立及初始化

//建立空陣列物件

nsarray *array2 = [[nsarray

alloc] init];

nslog(@"array2 = %@", array2);

//通過傳入陣列元素建立陣列物件

nsarray *array3 = [[nsarray

alloc] initwithobjects:@"four", @"five", @"six",nil];//nil表示陣列的結束

nslog(@"array3 = %@", array3);

//通過傳入的陣列建立陣列物件

nsarray *array4 = [[nsarray

alloc] initwitharray:array1];

nslog(@"array4 = %@", array4);

nsarray *array5 = [[nsarray

alloc] initwitharray:array4 copyitems:yes];

nslog(@"array5 = %@", array5);

//類方法建立空的陣列物件

nsarray *array6 = [nsarray

array];

nslog(@"array6 = %@", array6);

//類方法通過傳入陣列元素建立陣列物件

nsarray *array7 = [nsarray

arraywithobjects:@"seven", @"eight", @"nine",nil];

nslog(@"array7 = %@", array7);

//通過傳入的陣列物件建立陣列

nsarray *array8 = [nsarray

arraywitharray:array7];

nslog(@"array8 = %@", array8);

//建立乙個元素的陣列物件

nsarray *array9 = [nsarray

arraywithobject:@"ten"];

nslog(@"array9 = %@", array9);

//陣列元素的訪問

//獲取陣列元素的個數

nsinteger count = [array1 count];

nslog(@"count = %li", count);

//獲取指定索引位置的物件

id obj1 = [array1 objectatindex:2];

nslog(@"obj1 = %@", obj1);

nslog(@"obj1 = %@", array1[2]);

//獲取陣列元素在陣列中第一次出現的位置

nsinteger index = [array1 indexofobject:@"two"];

nslog(@"index = %li", index);

//獲取陣列中最後乙個元素

nslog(@"lastobject = %@", [array1 lastobject]);

//獲取陣列中第乙個元素

nslog(@"firstobject = %@", [array1 firstobject]);

//陣列的比較

nsarray *array10 = @[

@"one", @"two", @"there"

];nsarray *array11 = [nsarray

arraywithobjects:@"one", @"two", @"there",nil];

//判斷陣列是否相等

bool ret = [array10 isequaltoarray:array11];

if (ret == yes) {

nslog

(@"array10 == array11");

else{

nslog

(@"array10 != array11");

//返回兩個陣列中第乙個相等的元素

id obj2 = [array10 firstobjectcommonwitharray:array11];

nslog(@"obj2 = %@", obj2);

//陣列的排序

//通常排序的陣列中的元素是相同型別

//通常排序後的陣列預設都是從小到大的順序

nsarray

*array12 =

@[@"one", @"two", @"three", @"four"];

//- (nsarray *)sortedarrayusingselector:(sel)comparator;

//@selector 生成選擇器

//規則方法的返回值為》0的數的時候,底層會交換兩個陣列元素位置

nsarray *sortarray = [array12 sortedarrayusingselector:@selector(compare:)];

nslog(@"sortarray = %@", sortarray);

return0;

陣列及陣列操作

c語言是在組合語言的基礎上就行的抽象,所以在理解c語言程式時,務必要以記憶體為基礎進行理解。關於陣列,只是同種型別資料的記憶體使用方式,除了在與指標連用時的語法比較繁瑣,其他都比較簡單。1 定義 初始化 使用 結合指標使用時,就要把它當做位址了 2 使用的情況 當儲存多個相同型別的資料時,可以使用陣...

陣列的建立及使用

1 陣列直接量 var arr red yellow green 2 陣列例項化 var arr new array 20 3 陣列的長度 var arr new array 20 console.log arr.length 20 var arr 20 console.log arr.length...

順序表的建立及操作

1 線性表結構體的演算法 define maxsize maxlen maxlen表示線性表可能的最大資料元素數目 typedef int elemtype elemtype表示資料元素型別,此處定義為int typedef struct sqlist sqlist是資料型別 2 求表長 int l...