objective c 學習 陣列

2021-06-28 14:59:23 字數 3285 閱讀 9232

oc裡面的陣列是一種線性結構資料型別,在foundation框架之內。分為可變陣列(nsarray)與不可變陣列(nsmultiarray),其中multiarray 繼承自 nsarray  ,所以nsarray的各種方法,nsmultiarray一樣可以使用。

陣列可以通過下標索引到相應的物件。

nsarray和nsmultiarray裡面儲存的內容只能是——物件(類的例項) 。所以基本資料型別不能直接儲存進去,可以使用nsvalue或者nsnumber封裝儲存進去

oc裡面的陣列是一種線性的資料結構,它的資料原型是線性表.下圖展示了線性表的抽象資料型別(定義+操作)

操作有8種:大約是:增刪查改 始數找空

ios中的陣列,是線性表這個抽象資料結構的一種具象的實現,下面就展示一下蘋果公司的程式設計師們如何實現這個線性結構的。
1 類方法初始化:(這裡注意一下蘋果的命名規範,類方法一般是 classwith ,命名規範其實很重要),這裡有四種情況:分別是乙個物件,多個物件,使用陣列,從檔案 初始化

// 類方法命名規範

// 初始化乙個 因為是不可變的 所以實用性不強

nsarray *arr1=[nsarray arraywithobject:@"hello"];

//多個以nil作為陣列的結束

nsarray *arr2=[nsarray arraywithobjects:@"1",@"2", nil];

// 元素指向了同乙個位置

nsarray *arr3=[nsarray arraywitharray:arr2];

// 從檔案初始化陣列

// nsarray *arr3=[nsarray arraywithcontentsofurl:];

2 例項方法初始化:

nsarray *arr4=[[nsarray alloc] initwitharray:arr1];

3 可變陣列的初始化

// 新增了乙個空的陣列

nsmutablearray *mularray1=[nsmutablearray array];

// 初始化,加上容量

nsmutablearray *mularray=[nsmutablearray arraywithcapacity:1];

// 元素個數

int count=[arr2 count];

// 訪問哪個元素

nsstring *string1=[arr1 objectatindex:0];

// 查詢最後乙個物件

nslog(@"%@",[arr2 lastobject]);

遍歷

// 快速遍歷

for(/*或者id*/nsstring *string in mularray)

// 查詢物件位置

int objindex=[arr2 indexofobject:@"2"];

// 判斷是否有這個元素  這個是判斷有沒有

if(![arr2 containsobject:@"a"])

// 追加物件,返回新的陣列

nsarray *arr11=[arr1 arraybyaddingobject:@"haha"];

不可變陣列無法對陣列進行修改,這裡的操作都是可變陣列的,

// 新增物件

for(int i=0;i<20;i++)

// 根據索引位置新增乙個元素

[mularray insertobject:@"bbb" atindex:1];

// 刪除

// 刪除最後乙個

[mularray removelastobject];

// 刪除相應元素

[mularray removeobject:@"aaa"];

// 指定座標刪除

[mularray removeobjectatindex:3];

// 根據陣列來刪除

[mularray removeobjectsinarray:arr1];

// 替換

[mularray replaceobjectatindex:0 withobject:@"1"];

ios中沒有陣列判空操作,你可以用count==0來判斷

本系列博文目錄:

objective-c 學習系列目錄 不定時更新

Objective C學習 陣列排序問題

學到陣列的時候,經常為了資料排序因為排序問題煩惱,樓主也是如此,其實objc為我們提供了很好的排序機制,如下 加文本來解釋一下 main.m nsarraysort 陣列排序 部落格 created by yuewen on 15 9 13.首先定義乙個陣列 nsarray array boy ar...

Objective C陣列小結

objective c陣列相關操作。insert code here.nslog 陣列 指定多個字串建立陣列 nsarray array array nsarray arraywithobjects 0 asd 1 fds 2 哈咯 3 個人 nil 陣列的長度 nslog 陣列長度 d array...

Objective C陣列詳解

1 建立陣列並輸出。直接使用nsarray建立陣列,arr count 呼叫的是方法,來計算陣列的長度。arr objectatindex i 是呼叫方法獲取某個index位置的物件。int main int argc,char ar 2 此時呼叫計算長度使用的是陣列的屬性值count,所以直接使用...