OC可變陣列的常用操作

2021-09-08 13:13:31 字數 3174 閱讀 3459

可變陣列的初始化

可變陣列,繼承於不變陣列nsarry;

不可變陣列的方法都可以用於可變陣列

建立乙個空的可變陣列

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

//給乙個初始化容量

nsmutablearray *arr1 = [[nsmutablearray alloc]initwithcapacity:10];

//類方法

nsmutablearray *arr2 = [nsmutablearray array];

nsarray *arr = @[@「zjp」,@「ww」,@「jjj」,@「ww」,@「ahk」];

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

nsmutablearray *arr2 = [nsmutablearray array];//類方法

可變陣列新增元素

//增加乙個物件

[arr1 addobject:@"jay"];

//從陣列裡增加物件元素

[arr1 addobjectsfromarray:arr];

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

//插入

//插入元素 在指定的下標位置

[arr1 insertobject:@"hello" atindex:0];

可變陣列刪除元素

//刪除 指定下標的元素

[arr1 removeobjectatindex:0];

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

//刪除最後 乙個元素

[arr1 removelastobject];

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

//刪除指定元素 如果你陣列裡有多個相同的元素,也會一起刪除

[arr1 removeobject:@"ww"];

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

//刪除指定範圍的 元素

nsrange range = ;

[arr1 removeobject:@"zjp" inrange:range];

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

//刪除指定範圍裡的 所有元素

[arr1 removeobjectsinrange:range];

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

//刪除指定陣列的所有元素

[arr1 removeobjectsinarray:@[@"zjp"]];

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

//刪除指定下標集合的元素

//下標集合類

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

[indexset addindex:0];//把下標0放進集合裡

[indexset addindex:1];//把下標2放進集合裡

[arr1 removeobjectsatindexes:indexset];

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

//刪除陣列的所有元素

[arr1 removeallobjects];

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

可變陣列中元素的交換

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

//交換元素

//交換指定下標的陣列元素

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

[array exchangeobjectatindex:0 withobjectatindex:4];

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

//替換指定下標的元素

[array replaceobjectatindex:4 withobject:@"6"];

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

可變陣列練習 氣泡排序

nsmutablearray *arrm = [nsmutablearray arraywithobjects:@"1",@"2",@"5",@"4",@"8",@"10",@"7",@"3",@"6",@"9", nil];

nsinteger j=0;

for (nsinteger i = 0; i<[arrm count]; i++) }}

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

}

1.建立乙個可變陣列,陣列中包含若干不相同的字串,要求將指定的字串刪除

nsmutablearray *arr = [nsmutablearray arraywithobjects:@"1",@"4",@"s",@"6", nil];

[arr removeobject:@"s"];

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

2.建立乙個可變陣列,陣列中包含若干不相同的字串,要求將 下標整除3 的元素全部刪除

nsmutablearray *array = [nsmutablearray arraywithobjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11", nil];      

nsmutableindexset *index = [[nsmutableindexset alloc]init];

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

}[array removeobjectsatindexes:index];

nslog(@"arry= %@",array);

需要注意 上面的**,如果在for迴圈裡面刪除是不正確的,因為下標在一直變化的

oc 29 可變陣列

陣列長度不固定,可以隨便往裡面新增或者刪除元素。1.建立陣列 nsmutablearray arraym nsmutablearray array 2.給陣列新增元素 只能是oc物件 void addobject id anobject 3.如何刪除陣列元素 import int main int ...

OC不可變陣列NSArray詳解

1 nssarray 子類nsmutablearray nsset 子類nsmutableset nsdictionary 子類nsmutabledictionary 這幾個類都是集合類。2 c語言型別的陣列只能存放一種型別的資料。為此引入oc陣列nsarray,以物件導向的方法運算元據,可以存放各...

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

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