Objective-C數(shù)組

數(shù)組

數(shù)組是一個(gè)有序的集合,OC中的數(shù)組只能存儲(chǔ)對(duì)象類型,但是對(duì)于對(duì)象的類型沒(méi)有限制袁翁。
通過(guò)下標(biāo)訪問(wèn)數(shù)組元素狐树,下標(biāo)從0開(kāi)始。
數(shù)組分為可變數(shù)組(NSMutableArray)和不可變數(shù)組(NSArray)倆種虐拓。
NSArray:不可變數(shù)組,即:對(duì)象創(chuàng)建好以后,數(shù)組中元素個(gè)數(shù)不能發(fā)生變化。
NSMutableArray:可變數(shù)組,即對(duì)象創(chuàng)建好以后,數(shù)組中的元素可以靈活進(jìn)行增刪改操作。

不可變數(shù)組

1.如何創(chuàng)建創(chuàng)建一個(gè)不可變數(shù)組呢兜喻?創(chuàng)建數(shù)組有3種方法车荔。

//1>初始化方法
 NSArray *names = [[NSArray alloc] initWithObjects:@"frank", @"duck", @"monkey", nil];
//注:nil作為數(shù)組存放元素的結(jié)束標(biāo)志珠增,多個(gè)元素通過(guò)逗號(hào)間隔脆荷。
//2>便利構(gòu)造器
NSArray *names = [NSArray arrayWithObjects:@"frank", @"duck", @"monkey", nil];
//3>字面量
//使用“ @[] ”剑肯,“ [] ”中存入對(duì)應(yīng)的對(duì)象溃睹,對(duì)象之間使用”,”相隔七兜。比如: 
NSArray *names = @[@"frank", @"duck", @"monkey", @"cow"];

2.如何獲取數(shù)組中元素的個(gè)數(shù)呢惜犀?

 NSArray *arr =@[@"a",@"b",@"c"];
 NSLog(@"%ld",arr2.count);

3.獲取數(shù)組中指定下標(biāo)對(duì)應(yīng)的元素有2種方法

 //方法1
 //從數(shù)組取索引位置的對(duì)象
 NSLog(@"arr中索引值為0處的元素:%@",[arr objectAtIndex: 0]);
 //方法2
 //字面量的形式铛碑,與上面方法等價(jià)
 NSLog(@"arr中索引值為0處的元素:%@",arr[0]);

3.判斷數(shù)組中是否包含某一個(gè)給定的對(duì)象

    if ([arr containsObject: @"a"]) {
        NSLog(@"包含");
    }else{
        NSLog(@"不包含");
    }

4.獲取數(shù)組元素對(duì)應(yīng)的索引

NSLog(@"%@",[arr indexOfObject:@"b"]);

5.按照給定的字符串進(jìn)行截取莉御,將截取的多段字符串放入數(shù)組中

 NSString *string = @"www.baidu.com";
    NSArray *resultArr = [string componentsSeparatedByString:@"."];
    NSLog(@"%@",res ultArr);

6.將數(shù)組中的元素按照給定的字符串格式拼接成一個(gè)完整的字符串對(duì)象

NSArray *array = @[@"北京",@"大連",@"河南"];
    NSString *resultStr =[array componentsJoinedByString:@"&"];
    NSLog(@"%@",resultStr);

可變數(shù)組

NSMutableArray是OC中的可變數(shù)組,NSMutableArray的父類是NSArray画机,具有NSArray所有的方法梗肝,同時(shí)在NSArray的基礎(chǔ)上添加了對(duì)自身對(duì)象增刪改的操作凫乖。

1.可變數(shù)組也有3種創(chuàng)建方法,與不可變數(shù)組相的創(chuàng)建方法類似

//1>初始化方法
NSMutableArray *names = [[NSMutableArray alloc] initWithCapacity:0];
2>//便利構(gòu)造器
NSMutableArray *names = [NSMutableArray arrayWithCapacity:0];
3>//字面量創(chuàng)建方式(不可變數(shù)組拷貝一份可變數(shù)組)
NSMutableArray *names = [@[@"frank", @"duck", @"monkey", @"cow"] mutableCopy];

2.添加一個(gè)元素

 NSMutableArray *mutableArray =[NSMutableArray arrayWithObjects:@"aa",@"bb", nil];
 [mutableArray addObject:@"cc"];
 NSLog(@"%@",mutableArray);

3.將一個(gè)對(duì)象插入到數(shù)組中的索引位置處

[mutableArray insertObject:@"ee" atIndex:1];
    NSLog(@"%@",mutableArray);

4.移除一個(gè)對(duì)象(根據(jù)內(nèi)存地址判定的)

  [mutableArray removeObject:@"ee"];
    NSLog(@"%@",mutableArray);

5.移除最后一個(gè)元素

[mutableArray removeLastObject];
    NSLog(@"%@",mutableArray);

6.通過(guò)索引移除某一位置一個(gè)元素

[mutableArray removeObjectAtIndex:0];
    NSLog(@"%@",mutableArray);

7.修改某一位置元素

 mutableArray[0] =@"lili";

8.交換倆個(gè)索引出的元素

[mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:1];
    NSLog(@"%@",mutableArray);

9.移除所有元素(清空數(shù)組內(nèi)容)

[mutableArray removeAllObjects];
    NSLog(@"%@",mutableArray);

定義一個(gè)數(shù)組完成以下操作
(1)向數(shù)組中添加三個(gè)名字。
(2)從數(shù)組中查找指定的名字帽芽,并且用另外一個(gè)名字替換該姓名删掀。
(3)刪除指定的名字。

 NSMutableArray *nameArray = [NSMutableArray array];
    [nameArray addObject:@"1"];
    [nameArray addObject: @"2"];
    [nameArray addObject:@"3"];
   
       if ([nameArray containsObject:@"2"]) {
        NSUInteger index = [nameArray indexOfObject:@"2"];
            [nameArray replaceObjectAtIndex:index                                                                                                                                                                                                                                                                                             withObject:@"mm"];
    }
    NSLog(@"替換后為:%@",nameArray);
    [nameArray removeObjectAtIndex:0];
    NSLog(@"刪除后為:%@",nameArray) ;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末导街,一起剝皮案震驚了整個(gè)濱河市披泪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搬瑰,老刑警劉巖款票,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異泽论,居然都是意外死亡艾少,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)翼悴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)姆钉,“玉大人,你說(shuō)我怎么就攤上這事抄瓦〕逼浚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵钙姊,是天一觀的道長(zhǎng)毯辅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)煞额,這世上最難降的妖魔是什么思恐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮膊毁,結(jié)果婚禮上胀莹,老公的妹妹穿的比我還像新娘。我一直安慰自己婚温,他們只是感情好描焰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著栅螟,像睡著了一般荆秦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上力图,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天步绸,我揣著相機(jī)與錄音,去河邊找鬼吃媒。 笑死瓤介,一個(gè)胖子當(dāng)著我的面吹牛吕喘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播刑桑,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兽泄,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了漾月?” 一聲冷哼從身側(cè)響起病梢,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎梁肿,沒(méi)想到半個(gè)月后蜓陌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吩蔑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年钮热,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烛芬。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隧期,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赘娄,到底是詐尸還是另有隱情仆潮,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布遣臼,位于F島的核電站性置,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏揍堰。R本人自食惡果不足惜鹏浅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屏歹。 院中可真熱鬧隐砸,春花似錦、人聲如沸蝙眶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)械馆。三九已至胖眷,卻和暖如春武通,著一層夾襖步出監(jiān)牢的瞬間霹崎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工冶忱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尾菇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像派诬,于是被迫代替她去往敵國(guó)和親劳淆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 數(shù)組的遍歷默赂,這個(gè)話題貌似沒(méi)什么好探究的沛鸵,該怎么遍歷就怎么遍歷唄!但是如果要回答這些問(wèn)題:OC數(shù)組有哪幾種遍歷方式?...
    RenJK閱讀 12,112評(píng)論 12 84
  • 什么是數(shù)組缆八? 數(shù)組是一個(gè)有序的集合曲掰,OC中的數(shù)組只能存儲(chǔ)對(duì)象類型,但是對(duì)于對(duì)象的類型沒(méi)有限制奈辰。我們可以通過(guò)下標(biāo)去訪...
    文藝小年青閱讀 1,289評(píng)論 0 3
  • 數(shù)組是一個(gè)有序集合栏妖,oc中只能存儲(chǔ)對(duì)象類型。下標(biāo)從0開(kāi)始奖恰,通過(guò)下標(biāo)訪問(wèn)數(shù)組元素吊趾。NSArray:創(chuàng)建好后,數(shù)組中的...
    Hilarylii閱讀 260評(píng)論 0 0
  • 一孵奶、數(shù)組類 數(shù)組是一個(gè)有序的集合,OC中的數(shù)組只能儲(chǔ)存對(duì)象類型蜡峰,但是對(duì)于對(duì)象的類型沒(méi)有限制了袁。 通過(guò)下標(biāo)訪問(wèn)數(shù)組元素...
    劉可愛(ài)最可愛(ài)閱讀 344評(píng)論 0 0
  • 接上一篇文章中編譯與打包的流程,基本上常見(jiàn)的編譯錯(cuò)誤在上一篇已經(jīng)做了說(shuō)明湿颅,歡迎大家留言更多錯(cuò)誤共同探討解決方法载绿。 ...
    NBeanN閱讀 501評(píng)論 0 2