建立陣列。
3種常用方法遍歷陣列。
可變陣列nsmutablearray。
所有的筆記記錄在**的注釋中,幾乎一句一注釋,通俗易懂。
**部分如下:
#import #import "dog.h"
int main(int argc, const char * argv)
// 快速列舉法
for (id obj2 in array)
// 使用i值遍歷
// 陣列中有兩個方法
// [array count]方法返回陣列元素的個數
// [array objectatindex:]方法返回單個元素的位址
nsinteger i;
for (i = 0; i < [array count]; i++)
// 以上的陣列均是不可變陣列,在建立之後元素的個數和順序不可變
// 可變陣列 mutablearray
nsmutablearray * marray = [[nsmutablearray alloc] init];
// 增加元素
[marray addobject:@"mone"];
[marray addobject:@"mtwo"];
[marray addobject:@"mthree"];
nslog(@"mutablearray marray: %@", marray);
// 刪除元素
// [marray removeobject:@"mone"];
// nslog(@"removeobject marray: %@", marray);
// 用@」「建立的字串物件,如果完全一樣,那麼就是同乙個物件,位址一樣。
// 刪除指定的第幾個字串
// [marray removeobjectatindex:1];
// nslog(@"remove at index marray: %@", marray);
// 交換兩個陣列元素的位置
[marray exchangeobjectatindex:0 withobjectatindex:2];
nslog(@"exchange marray: %@", marray);
// 可變字串陣列也可以像不可變陣列那樣遍歷
// 但是在列舉遍歷中不能刪除陣列中的元素
// nsmutablearray * mmarray = [[nsmutablearray alloc] initwithobjects:@"one", @"two", @"three", nil];
// nsenumerator * enu = [mmarray objectenumerator];
// nsstring * mstr;
// while (mstr = [enu nextobject])
// nslog(@"enumerator mmarray: %@", mmarray);
// 程式發生奔潰
// 實際上只有第一次迴圈可以執行
// 當對第一次陣列進行修改之後
// 第二次使用列舉法遍歷就會奔潰
// 但是,如果我們進行逆序遍歷,生成乙個逆序列舉器,再修改就沒有任何問題。
nsmutablearray * mmarray = [[nsmutablearray alloc] initwithobjects:@"one", @"two", @"three", nil];
nsenumerator * enu = [mmarray reverseobjectenumerator];
nsstring * mstr;
while (mstr = [enu nextobject])
nslog(@"%@", mmarray);
// 快速列舉法不能修改,i值可以隨意修改
// 陣列和字串的聯合使用
nsstring * sstr = @"i am a so bad man";
// 按每個單詞分開逆序表示
// 首先將字串進行分割,分割出的字串放在陣列中
// 函式按引數分割字串,建立乙個陣列,返回陣列的位址
nsarray * sarray = [sstr componentsseparatedbystring:@" "];
nslog(@"sarray: %@", sarray);
// 建立乙個空的可變陣列
nsmutablearray * mutalearray = [[nsmutablearray alloc] init];
// 對陣列sarray逆序的遍歷
nsenumerator * enumerator1 = [sarray reverseobjectenumerator];
nsstring * obj1;
while (obj1 = [enumerator1 nextobject])
nslog(@"mutablearray: %@", mutalearray);
// 再拼回成字串
// 用引數連線陣列中的每個字串
nsstring * newstr = [mutalearray componentsjoinedbystring:@" "];
nslog(@"%@", newstr);
}return 0;
}
列印結果如下:
2015-06-02 14:45:56.268 nsarray[16559:4906236] (
one,
two,
three
)2015-06-02 14:45:56.269 nsarray[16559:4906236] this is a dog!
2015-06-02 14:45:56.269 nsarray[16559:4906236] array2: (
one,
two,
"this is a dog!"
)2015-06-02 14:45:56.274 nsarray[16559:4906236] enumerator array: one
2015-06-02 14:45:56.274 nsarray[16559:4906236] enumerator array: two
2015-06-02 14:45:56.274 nsarray[16559:4906236] enumerator array: three
2015-06-02 14:45:56.275 nsarray[16559:4906236] fast enumerator array: one
2015-06-02 14:45:56.275 nsarray[16559:4906236] fast enumerator array: two
2015-06-02 14:45:56.275 nsarray[16559:4906236] fast enumerator array: three
2015-06-02 14:45:56.275 nsarray[16559:4906236] i with array loop: one
2015-06-02 14:45:56.275 nsarray[16559:4906236] i with array loop: two
2015-06-02 14:45:56.275 nsarray[16559:4906236] i with array loop: three
2015-06-02 14:45:56.276 nsarray[16559:4906236] mutablearray marray: (
mone,
mtwo,
mthree
)2015-06-02 14:45:56.276 nsarray[16559:4906236] exchange marray: (
mthree,
mtwo,
mone
)2015-06-02 14:45:56.276 nsarray[16559:4906236] three
2015-06-02 14:45:56.276 nsarray[16559:4906236] two
2015-06-02 14:45:56.276 nsarray[16559:4906236] one
2015-06-02 14:45:56.276 nsarray[16559:4906236] (
)2015-06-02 14:45:56.276 nsarray[16559:4906236] sarray: (
i,am,
a,so,
bad,
man)2015-06-02 14:45:56.277 nsarray[16559:4906236] mutablearray: (
man,
bad,
so,a,
am,i
)2015-06-02 14:45:56.277 nsarray[16559:4906236] man bad so a am i
OC不可變陣列NSArray詳解
1 nssarray 子類nsmutablearray nsset 子類nsmutableset nsdictionary 子類nsmutabledictionary 這幾個類都是集合類。2 c語言型別的陣列只能存放一種型別的資料。為此引入oc陣列nsarray,以物件導向的方法運算元據,可以存放各...
Swift筆記 陣列
建立乙個空陣列 使用構造語法來建立乙個由特定資料型別構成的空陣列 var array int print array.count count 通過建構函式的型別,array的值型別被推斷為 int 建立乙個帶有預設值的陣列 swift 中的array型別還提供乙個可以建立特定大小並且所有資料都被預設...
PHP筆記,陣列
1.php有兩種陣列 索引陣列 關聯陣列。索引和關聯兩個詞都是針對陣列的鍵而言的 1 索引陣列是指數組的鍵是整數的陣列,並且鍵的整數順序是從0開始,依次類推。索引陣列的初始化 fruit array 蘋果 香蕉 菠蘿 2 關聯陣列是指數組的鍵是字串的陣列。可以使用 print r 陣列名 語句輸出陣...