OC基础 可变数组与不可变数组的使用

1.不可变数组

1.1不可变数组的创建

        //实例方法
NSArray *array = [[NSArray alloc] initWithObjects:@"",@"",@"", nil];
NSLog(@"%@",array);
//类方法
NSArray *array1 = [NSArray arrayWithObjects:@"",@"",@"", nil]; //实例方法
NSArray *array2 = [[NSArray alloc] initWithArray:array];
NSLog(@"%@",array2);

NSArray *array3 = [NSArray arrayWithArray:array2];

1.2不可变数组的常用操作

        //获取元素的个数
NSInteger count = [array count];
//获取数组某一个位置的元素
NSString *str = [array objectAtIndex:];
//获取某个元素在数组里面的索引(位置)
NSInteger index = [array indexOfObject:@""];
NSLog(@"%ld",index); //判断数组中是否包含某个元素
BOOL b = [array containsObject:@""];
//获取数组的最后一个元素
NSString *str2 = [array lastObject];
//以“-”将数组元素拼接成字符串
NSString *str3 = [array componentsJoinedByString:@"-"]; //数组的的遍历
for(int i = ;i<[array count];i++)
{
NSString *str = [array objectAtIndex:i];
NSLog(@"%@",str);
}
//for in
for(NSString *str in array)
{
NSLog(@"%@",str);
} //数组的嵌套
NSArray *array4 = [NSArray arrayWithObjects:array,array1,array2,array3, nil];
NSLog(@"%@",array4); //嵌套数组的遍历
//NSArray *array = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
for(NSArray *arr in array4)
{
for(NSString *str in arr)
{
NSLog(@"%@",str);
}
}

2.可变数组

2.1可变数组的创建

        //可变数组的创建
NSMutableArray *muArr = [[NSMutableArray alloc] initWithObjects:@"",@"",@"", nil];
NSMutableArray *muArr1 = [[NSMutableArray alloc] initWithArray:muArr];
NSMutableArray *muArr2 = [NSMutableArray array];

2.2可变数组的常用操作

        //可变数组添加元素
//追加一个元素
[muArr addObject:@""];
//追加一组元素
[muArr addObjectsFromArray:muArr1];
NSLog(@"%@",muArr);
//在指定位置插入元素
[muArr insertObject:@"" atIndex:]; //可变数组删除元素
//删除最后一个元素
[muArr removeLastObject];
//删除指定位置的元素
[muArr removeObjectAtIndex:];
NSLog(@"%@",muArr);
//删除指定元素
[muArr removeObject:@""];
NSLog(@"%@",muArr);
//删除所有元素
[muArr removeAllObjects];
NSLog(@"%@",muArr); //数组置空
//muArr = nil;
//NSLog(@"%@",muArr); [muArr addObjectsFromArray:muArr1];
//@"1",@"2",@"3"
//删除指定范围内的指定元素
[muArr removeObject:@"" inRange:NSMakeRange(, )];
//根据指定的数组来删除元素
NSArray *array = [NSArray arrayWithObjects:@"",@"", nil];
[muArr removeObjectsInArray:array];
NSLog(@"%@",muArr);
//删除指定范围内的所有元素
[muArr removeObjectsInRange:NSMakeRange(, )]; //可变字符串的修改
[muArr setArray:array];
NSLog(@"%@",muArr); //替换某个位置的元素
[muArr replaceObjectAtIndex: withObject:@""];
//交换2个元素的位置
[muArr exchangeObjectAtIndex: withObjectAtIndex:];
        NSMutableArray *muArray = [[NSMutableArray alloc] initWithObjects:@"联通3GNET",@"移动3GCMNET",@"电信4GCTLTE",@"电信3GCTNET",@"联通4GWONET", nil];
[muArray sortUsingSelector:@selector(compare:)];
NSLog(@"%@",muArray);

2.3简单的创建数组

 NSArray *array = @[@"",@"",@""];
NSLog(@"array = %@",array);

OC基础 可变数组与不可变数组的使用的更多相关文章

  1. Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组

    类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...

  2. OC基础 可变字典与不可变字典的使用

    OC基础 可变字典与不可变字典的使用 1.不可变字典 1.1创建不可变字典 //创建字典 //注意: //1,元素个数是偶数 //2,每两个元素是一个键值对 //3,值在前,键在后 NSDiction ...

  3. OC基础:数组.字典.集 分类: ios学习 OC 2015-06-18 18:58 47人阅读 评论(0) 收藏

    ==============NSArray(不可变数组)=========== NSArray,继承自NSObject  用来管理(储存)一些有序的对象,不可变数组. 创建一个空数组 NSArray ...

  4. 【转】不可变数组NSArray与可变数组NSMutableArray

    原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...

  5. oc基础 不可变字符串的创建和使用

    oc基础  不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串 NSString *str=@"hello world!"; NSL ...

  6. Chapter5_初始化与清理_数组初始化与可变参数列表

    一.数组初始化 数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.编译器是不允许指定数组的长度的,当使用语句int[] a时,拥有的只是一个符号名,即一个数组的引用,并不拥 ...

  7. scala (4) 可变数组和不可变数组

    在scala中数组分为不可变长数组(在immutable包下)和可变长数组(在mutable包下) 不可变长数组指的是长度不可变,但是数组中角标对应的元素的值是可变的 可变数组指的是长度和数组中角标对 ...

  8. Java语言程序设计(基础篇) 第七章 一维数组

    第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储 ...

  9. Python基础(list和tuple)可变集合和‘不可变’集合

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

随机推荐

  1. myeclipseb笔记(4):拷贝文件的相应配置

    在MyEclipse中,经常需要用到拷贝工程文件,但是直接拷贝的话,就会出现访问不了的情况,如下: 原文件learn/StudManage/login.jsp,访问: 拷贝工程,改名,访问: 就出现了 ...

  2. 导入表数据 txt

    导入表数据 txt mysql> load data infile "D:/import.txt" into table shop;输出: Query OK, rows af ...

  3. kakfa-性能相关

    1.增大partition最大连接数 kafka的集群有多个Broker服务器组成,每个类型的消息被定义为topic,同一topic内部的消息按照一定的key和算法被分区(partition)存储在不 ...

  4. spring动画-iOS-备

    最后停止在终点: 如果给位置移动的动画添加弹簧效果,那么视图的运动轨迹应该像下图中展现的一样: 这会使你的动画看起来更逼真.更真实.更贴近现实.在某些情况下带给用户更好的用户体验.那么让我们开始学习吧 ...

  5. Lintcode--010(最长上升子序列)

    给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度.LIS(longestIncreasingSubsequence) 说明: 最长上升子序列的定义: 最长上升子序列问题是在一个无序的给 ...

  6. Unity中Mecanim工作流

    Mecanim工作流可以被分解为3个主要阶段:1.资源的准备和导入这一阶段由美术师或动画师通过第三方工具来完成,例如Max或Maya.2.角色的建立主要有以下两种方式1)人形角色的建立.Mecanim ...

  7. NSIS如何对一整个目录文件夹(包括子文件夹和其中的文件)压缩

    原来不加/r参数,NSIS编译器就会不认识文件夹啊. File /r [dir] Reference: http://stackoverflow.com/questions/7973242/nsis- ...

  8. Go语言中的管道(Channel)总结

    管道(Channel)是Go语言中比较重要的部分,经常在Go中的并发中使用.今天尝试对Go语言的管道来做以下总结.总结的形式采用问答式的方法,让答案更有目的性. Q1.管道是什么? 管道是Go语言在语 ...

  9. security

  10. c语言中break continue goto return和exit的区别 联系(筛选奇数和goto求和)

    break 一般你是用于循环和switch语句中,执行break,退出循环,如果是多层循环,那么退出的当前的循环. 如果循环结构中有switch语句,而switch语句中有break 那么不会直接退出 ...