數(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) ;