oc学习之NSArray与NSMutableArray数组

//创建数组对象,NSArray不可变数组

//[NSNull null]空对象

//NSArray *arr = [[NSArray alloc] initWithObjects:@"234",@"543",@"asb",nil];

NSArray *arr1 = @[@"1 2 3",@"234",[NSNull null],@"789"];

NSArray *arr3 = [[NSArray alloc] initWithArray:arr1];

NSLog(@"%@",arr3);

//将c数组转化为oc数组对象

NSString *carr[10] = {@"123",@"456",@"789"};

NSArray *arr4 = [[NSArray alloc] initWithObjects:carr count:3];

NSLog(@"%@",arr4);

//获取数组元素个数

NSUInteger count = [arr4 count];   //NSUInteger无符号的  NSInteger有符号

NSLog(@"count is:%ld" , count);

//获取指定下标元素

NSLog(@"%@",[arr3 objectAtIndex:1]);

//获取第一个元素或者最后一个元素

NSLog(@"%@",[arr3 firstObject]);

NSLog(@"%@",[arr3 lastObject]);

//获取arr2的子集

NSArray *arr2 = @[@"111",@"222",@"333",@"444",@"555",@"666"];

//取出arr2中的连续范围的元素作为子集内容

NSArray *sub1 = [arr2 subarrayWithRange:NSMakeRange(1, 3)]; //sub1为新的子集

NSLog(@"%@",sub1);

//获取任意元素作为子集

//1、列出做需要元素的下标清单

//  NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];

//1-1将要获取元素的下标写入清单

//for (NSInteger i = 0; i<[arr2 count]; i++) {

//   if (i % 2 != 0)

//   {

//      [indexs addIndex:i];

//  }

//}

//2、将清单交给数组

//    NSArray *sub2 = [arr2 objectAtIndex:indexs];//获取下标清单里的所有元素,返回一个元素集合数组

//  NSLog(@"sub2 = %@",sub2);

//获取最长字符串和最小字符串

//快速枚举

NSArray *arr5 = @[@"123456789", @"222", @"333", @"errr", @"444", @"5", @"666"];

NSInteger maxLength = [arr5[0] length];

NSInteger minLength = [arr5[0] length];

NSString *maxString = nil;

NSString *minString = nil;

for (id obj in arr5) {

if (maxLength <= [obj length]) {

maxLength = [obj length];

maxString = obj;

}

if (minLength >= [obj length]) {

minLength = [obj length];

minString = obj;

}

}

NSLog(@"maxString = %@, minString = %@",maxString,minString);

////////////////////////////////////////////////////////////////////

//=========可变数组===========可变数组============可变数组===========//

////////////////////////////////////////////////////////////////////

//创建可变数组对象

NSMutableArray *array1 = [[NSMutableArray alloc] initWithObjects:@"232",@"aaa",@"342",@"987",@"876",nil];

NSMutableArray *array2 = [[NSMutableArray alloc] initWithObjects:@"dada",@"zas",@"4rfc",@"7uj",nil];

NSLog(@"array1 = %@ array2 = %@",array1,array2);

//插入元素

//插入下标的范围0 <= index <= count

[array1 insertObject:@"JXF" atIndex:1];

[array1 insertObject:@"WG" atIndex:[array1 count]];//这样是把“WG”插入到最后

[array1 insertObject:@"GG" atIndex:3];//这样写是把“GG”插入到下标为3的位置!

NSLog(@"array1 = %@",array1);

//删除元素

//[array2 removeAllObjects];//删除所有

// [array2 removeLastObject];//删除最后一个

//[array2 removeObject:@"zas"];

// NSLog(@"%@",array2);

//  [array2 removeObject:@"zas" inRange:NSMakeRange(1, 2)];

//  NSLog(@"%@",array2);

//  [array2 removeObjectAtIndex:2];//删除指定下标的元素

//    [array2 removeObjectIdenticalTo:@"zas"];

//    [array2 removeObjectIdenticalTo:@"zas" inRange:NSMakeRange(1, 2)];

//如果要删除不连续的元素,则先把要删除的元素放在一个清单中,然后再删除该清单

//比如要删下标为偶数的

NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];

for (int i = 0; i < [array2 count]; i++) {

if (i % 2 == 0) {

[indexs addIndex:i];

}

}

//删除清单中得元素

[array2 removeObjectsAtIndexes:indexs];

NSLog(@"%@",array2);

//修改数组中的内容

[array2 replaceObjectAtIndex:1 withObject:@"NMB"];

NSLog(@"%@",array2);

NSArray *arr = @[@"000",@"111",@"aaa"];

[array2 replaceObjectsAtIndexes:indexs withObjects:arr];

NSLog(@"%@",array2);

//交换数组中的的内容

[array2 exchangeObjectAtIndex:0 withObjectAtIndex:1];

NSLog(@"%@",array2);

//用OC对C语言中的数组排序

for (int i = 0; i<[array2 count]; i++) {

for (int j =i+1 ;j<[array2 count];j++) {

if ([array2[i] length ]>[array2[j] length]) {

[array2 exchangeObjectAtIndex:i withObjectAtIndex:j];

}

}

}

NSLog(@"array2 = %@",array2);

时间: 2024-12-13 13:11:57

oc学习之NSArray与NSMutableArray数组的相关文章

NSArray与NSMutableArray 数组与可变数组的创建和遍历 复习

1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组. 2.NSArray的创建 NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"four good",nil];//用对象初始化一个数组,这里是任意四个对象,不一定是字符串.//OC中的数组,不是真正的数组,这是一个链表,nil的作用正是表

IOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)

IOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的,      可以存放重复的元素,数组也分为不可变数组和可变数组.       1.不可变数组NSArray:初始化之后不能修改数组的内容       2.可变数组NSMutableArray:可以随时修改数组的内容(增加元素.删除元素.修改元素) 二.NSArray数组的操作 1)NSArray数组的创建 1.创建方法一:使用

OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法

一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化完毕,内容不能改变,也不能添加元素. 而C语言中的数组只能存放一种数据类型 (1) 普通数组的用法 // 普通数组的创建 // int arr[5] = {1,3,4}; // 对象数组的创建 // Person *p = [[Person alloc] init]; // Person *arrP

NSArray与NSMutableArray 数组与可变数组

1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"four good",nil];//用对象初始化一个数组,这里是任意四个对象,不一定是字符串.//OC中的数组,不是真正的数组,这是一个链表,nil的作用正是表明结

Ojbect-C2 3、NSArray和NSMutableArray数组的使用

Adopted Protocols NSCoding encodeWithCoder: initWithCoder: NSCopying copyWithZone: NSMutableCopying mutableCopyWithZone: NSFastEnumeration countByEnumeratingWithState:objects:count: Tasks Creating an Array + array + arrayWithArray:   -- + arrayWithCo

Objective-C学习-数组 NSArray 和 NSMutableArray(欢迎提意见)

在学习 Objective-C的过程中,感觉数组在这一个学习方面是一个比较大的应用域,所以写这篇随笔来总结一下. 首先声明的是,与C语言的数组不同,Objective-C的是数组只能用来存储对象,而不是存储int .double.char等基础数据类型,一般要存这些基础数据类型,对于我这个刚学 Objective-C的新手来说,我的做法是将有关数字的基础类型 如 int .double.char首先转换成一个叫做 NSNumber的类  char*类型的转换成  Objective-C的字符串

Snail—OC学习之数组NSArray

NSArray是OC中的数组,是用来存储对象的.可以是重复的.有序的 新建一个Dog的类,在main.m中引入Dog的头文件 #import <Foundation/Foundation.h> #import "Dog.h" int main(int argc, const char * argv[]) { @autoreleasepool { Dog * dog = [[Dog alloc] init]; //数组的创建方式 //空数组创建 NSArray * arrry

Objective-C学习篇07—NSArray与NSMutableArray

大纲 NSArray NSMutableArray 快速枚举 NSArray NSArray是一个静态数组,也就是一个不可变数组,一旦创建以后,就不能进行添加,删除或者修改其中的元素.NSArray继承自NSObject,用于管理一系列有序对象的集合,可以通过对象在数组中的位置(索引)来访问对象.和C语言一样,数组中元素的索引是从0开始的.数组中既可以用于存放同一个类的对象,也可以用于存储不同类的对象.但不能存放nil,nil被视为数组结束的标志,系统会在方法末尾自动生成. 切记:NSArray

OC中Foundation框架之NSArray、NSMutableArray

NSArray概述 1 NSArray是OC中的数组类 NSArray特点 1 1)只能存放任意OC对象,并且是有顺序的 2 2)不能存放非OC对象,比如int/float/double/char/enum/struct等 3 3)它是不可变的,一但初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再玩里面添加元素 NSArray的创建方式 1 +(instancetype)array; 2 +(instancetype)arrayWithObject:(id)anObject