Object C 中的可變陣列和不可變陣列

2021-07-04 05:30:15 字數 3197 閱讀 6836

在oc中,我們用 『nsarray』 類 和 『nsmutablearray』 類來表示陣列,其中, 『nsarray』 類 是 『nsmutablearray』 類的父類。在oc中,我們陣列是有序的』物件』的集合,即我們的陣列只能儲存』物件』。在oc中我們的陣列中元素型別不能是』int』,』float』,』cgpoint』等型別。

nsarray(不可變陣列)

1.初始化方法

//建立乙個空的陣列

nsarray *array1 = [[nsarray alloc]init];

nsarray *array2 = [nsarray array];

//建立乙個裡面只有乙個元素的不可變陣列

nsarray *array3 = [nsarray arraywithobject:@"zhou"];

//建立乙個裡面有多個元素的不可變陣列

nsarray *array4 = [nsarray arraywithobjects:@"zhou",@"xinzhen",@"panzhi",@"gugeng" ,nil];

//新語法

nsarray *array5 = @[@"zhou"];

nsarray *array6 = @[@"zhou",@"xinzhen",@"panzhi",@"gugeng"];

//根據另一陣列產生新陣列

nsarray *array7 = [nsarray arraywitharray:array6];

//從本地檔案中讀取陣列

nsarray *array8 = [nsarray arraywithcontentsoffile:@""];

//從網路檔案中讀取陣列

nsarray *array9 = [nsarray arraywithcontentsofurl:[nsurl urlwithstring:@""]];

2.陣列元素個數

nsuinteger count = array6.count;
3.訪問陣列元素

//訪問array6中的第乙個元素

nsarray *str = [array6 objectatindex:0];

//新語法訪問陣列中的元素

nsstring *str2 = array6[0];

//通過陣列中的元素找下標

nsuinteger index = [array6 indexofobject:@"zhou"];

nslog(@"%lu",index);

4.陣列中是否存在某個元素

bool flag = [array6 containsobject:@"zhou"];
5.向不可變陣列中增加乙個元素或者,生成乙個新的陣列

nsarray *newarray1 = [array6 arraybyaddingobject:@"fangjian"];

nsarray *newarray2 = [array6 arraybyaddingobjectsfromarray:array6];

nsmutablearray(可變陣列)

『nsmutablearray』為』nsarray』的子類,即上述使用api對於可變陣列來講都適用

1.初始化方法

//初始化乙個空的可變陣列

nsmutablearray *marray1 = [nsmutablearray array];

nsmutablearray *marray2 = [nsmutablearray arraywithobject:@"1"];

nsmutablearray *marray3 = [nsmutablearray arraywithobjects:@"1",@"2", @"3",@"4",nil];

nsmutablearray *marray4 = [nsmutablearray arraywitharray:marray2];

//可變陣列獨有的初始化方法

nsmutablearray *marray5 = [nsmutablearray arraywithcapacity:10];

nsmutablearray *marray6 = [nsmutablearray arraywithcontentsoffile:@""];

nsmutablearray *marray7 = [nsmutablearray arraywithcontentsofurl:[nsurl urlwithstring:@""]];

//增加

//在陣列的末尾增加乙個元素

[marray3 addobject:@"5"];

[marray3 insertobject:@"vin" atindex:2];

//替換,將陣列指定位置上的元素替換成使用者想要元素

[marray3 replaceobjectatindex:2 withobject:@"sb"];

//交換,將陣列指定位置上的兩個元素交換位置

[marray3 exchangeobjectatindex:1 withobjectatindex:4];

//刪除

//刪除指定元素

[marray3 removeobject:@"1"];

//刪除指定位置上的元素

[marray3 removeobjectatindex:2];

//刪除陣列中最後乙個元素

[marray3 removelastobject];

//刪除陣列中所有元素

[marray3 removeallobjects];

//陣列的遍歷

//快速列舉

nsmutablearray *marray =[nsmutablearray arraywithobjects:@"1",@"2",@"3",@"4",@"5",@"6", nil];

for (nsstring *element in marray)

//使用系統提供的列舉類 nsenumerator

nsenumerator *enumerator = [marray objectenumerator];

nsstring *ele ;

while (ele = [enumerator nextobject])

//當我們在遍歷可變陣列時不可修改陣列

PL SQL中的集合 可變陣列

set serveroutput on 可變陣列 集合型別 初始化 declare type months is varray 12 of varchar 2 my month months months 提供足夠的東西 my month months months 1 2 3 4 5 6 7 8 ...

可變陣列的實現

include array.h include include const int block size 20 typedef struct array 建立乙個可變陣列 array array create int init size array array create array a,int ...

Python中的可變資料型別和不可變資料型別

python的基本資料型別大致可分為6類 1.number 數字 2.string 字串 3.tuple 元組 4.list 列表 5.dictionary 字典 6.sets 集合 bool布林型別 int整型 float浮點型 complex複數等都歸為number數字型別 這6種型別又可以分為...