iOS - 数组(NSArray)
1. 数组的常用处理方式
//--------------------不可变数组
//1.数组的创建
NSString *s1 = @"zhangsan";
NSString *s2 = @"lisi";
NSString *s3 = @"wangwu";
//(1)
NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil];
NSLog(@"%@",array1); //等价于 array1.descripton
//(2)使用类方法创建
NSArray *array2 = [NSArray arrayWithObjects:s1,s2,s3, nil];
//(3)创建一个数组对象,同时往里面存入一元素
NSArray *array3 = [NSArray arrayWithObject:s1];
//(4)创建一个数组,此数组中的元素来自array1
NSArray *array4 = [NSArray arrayWithArray:array1];
NSLog(@"array4 = %@",array4);
//2.通过下标取元素
NSString *str1 = [array4 objectAtIndex:0];
//3.数组元素的个数
NSUInteger count = [array4 count]; //等价于:array4.count;
//4.判断数组中的是否包含某个元素
BOOL isContains = [array4 containsObject:@"zhangsan"];
NSLog(@"isContains:%d",isContains);
//5.查找某一个对象在数组中的下标位置
NSUInteger index = [array4 indexOfObject:@"wangwu"];
if (index == NSNotFound) {
NSLog(@"Not find elemnts");
} else {
NSLog(@"index = %ld",index);
}
//6.链接数组中的字符串(前提:数组中都是字符串)
NSString *joinString = [array4 componentsJoinedByString:@","];
NSLog(@"joinString = %@",joinString);
//7.访问数组最后一个元素
NSString *lastObj = [array4 lastObject]; //array4.lastObject
NSLog(@"lsatObj = %@",lastObj);
//8.再原路的数组后面添加一个元素
NSArray *array5 = [array4 arrayByAddingObject:@"zhaolia"];
NSLog(@"array5 = %@",array5);
//取对应下标元素
int idx=4;
if (idx <array5.count) {
NSString *s = [array5 objectAtIndex:idx];
NSLog(@"s = %@",s);
}
//--------------数组的遍历
//1.普通遍历
for (int i=0; i<array5.count; i++) {
NSString *str = [array5 objectAtIndex:i];
NSLog(@"%@",str);
}
//快速遍历
for (NSString *s in array5) {
NSLog(@"%@",s);
}
//4.4之后的优化
//1.创建一个素组
NSArray *array7 = @[s1,s2,s3]; //等价于:NSArray *array7 = [NSArray arrayWithObjects:s1,s2,s3,nil];
NSLog(@"array7 = %@",array7);
NSString *str = array7[0];
NSLog(@"array[7] = %@",str);
//------------------可变数组
//初始化,设定元素个数为5,可以更改的。(继承自NSArray)
NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:5];
//想数组中添加一个元素
[mutableArray addObject:@"aaa"];
//向数组中指定下标插入元素
[mutableArray insertObject:@"ccc" atIndex:0];
NSLog(@"%@",mutableArray); //原来位置元素后移
//移除最后一个元素
[mutableArray removeLastObject];
NSLog(@"移除最后元素后:%@",mutableArray);
//移除指定元素
[mutableArray removeObject:@"aaa"];
//移除指定下标元素
[mutableArray removeObjectAtIndex:0];
//向数组中添加数组
[mutableArray addObjectsFromArray:array1];
//1.创建可变数组
NSString *t1 = @"zhangsan ";
NSString *t2 = @"lisi";
NSString *t3 = @"wangwu ";
// NSMutableArray *mArray1 = @[s1,s2,s3];//wrong.这里创建了一个不可变数组
NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithObjects:s1,s2,s3, nil];
//创建数组时,开辟3个空间用于存储元素,存储超过容量,数组自动增大空间
NSMutableArray *mArray2 = [[NSMutableArray alloc] initWithCapacity:3];
NSMutableArray *mArray3 = [NSMutableArray arrayWithCapacity:3];
//2.添加元素
[mArray2 addObject:t1];
[mArray2 addObject:t2];
[mArray2 addObject:t3];
NSLog(@"mArray2= %@",mArray2);
//将mArray2 中元素添加到mArray3中
// [mArray3 addObjectsFromArray:mArray2];
//将mArray2作为二维数字添加
[mArray3 addObject:mArray2];
NSLog(@"mArray3 = %@",mArray3);
//3.插入元素
[mArray2 insertObject:@"Jack" atIndex:0];
NSLog(@"mArray2 = %@",mArray2);
//4.替换元素
[mArray2 replaceObjectAtIndex:0 withObject:@"John"];
NSLog(@"替换:%@",mArray2);
//5.互换两个元素的位置
[mArray2 exchangeObjectAtIndex:3 withObjectAtIndex:0];
NSLog(@"mArray2 = %@",mArray2);
//6.删除元素
//6.1根据下标删除
[mArray2 removeObjectAtIndex:2];
NSLog(@"mArray2 = %@",mArray2);
//6.2删除最后一个元素
[mArray2 removeLastObject];
NSLog(@"mArray2 = %@",mArray2);
//6.3删除指定的对象
//[mArray2 removeObject:@"zhangsan"];
//6.4删除所有元素
[mArray2 removeAllObjects];
NSLog(@"mArray2 = %@",mArray2);
iOS - 数组(NSArray)的更多相关文章
- IOS数组NSArray与NSMutableArray知识点
此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundati ...
- iOS - OC NSArray 数组
前言 @interface NSArray<__covariant ObjectType> : NSObject <NSCopying, NSMutableCopying, NSSe ...
- IOS 数组分组 Grouped NSArray
NSMutableSet *set=[NSMutableSet set]; [_list enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BO ...
- iOS数组使用
相关链接: ios数组基本用法和排序 NSArray 排序汇总 iOS 数组排序方法 IOS-筛选数组内的元素 关于EnumerateObjectsUsingBlock和for-in之间的较量 [iO ...
- [BS-02] iOS数组、字典、NSNumber 新写法—— @[]、@{}
IOS数组.字典.NSNumber 新写法—— @[].@{} //标准写法 NSNumber * number = [NSNumber numberWithInt:]; NSArray * ar ...
- iOS 数组字典操作
iOS开发中需要大量对dictionary和array进行操作,因此我们需要一种更加安全可靠的操作方法来避免不必要的crash.当然可以通过自定义dictionary 和array重载增删改查的方法来 ...
- iOS 将NSArray、NSDictionary转换为JSON格式进行网络传输
http://blog.csdn.net/worldzhy/article/details/49982491 将NSArray.NSDictionary转换为JSON格式进行网络传输,是经常用到的,但 ...
- 从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)
从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray) deque deque双端队列,分段连续空间数据结构,由中控的map(与其说map,不如说是数 ...
- Object-C,数组NSArray
晚上回来,写了2个iOS应用程序. 就是在界面中,展示标签.一种是手动构造界面,然后绑定事件.另外一种是,使用自带的界面作为容器,但是手动向里面放其它界面元素. 书中的观点是,使用图形化界面,构造界面 ...
随机推荐
- Apache的Order Allow Deny心得
Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权. 所以,最常用的是: O ...
- 【Backbone】简介
1.Model 2.Collection 3.View 4.Router 5.History 6.Events http://addyosmani.github.io/backbone-fundame ...
- fs/ext2/inode.c相关函数注释
用数组chain[4]描述四种不同的索引,即直接索引.一级间接索引.二级间接索引.三级间接索引.举例说明这个结构各个域的含义.如果文件内的块号为8,则不需要间接索引,所以只用chain[0]一个Ind ...
- java字符串分解 StringTokenizer用法(比split()方法效率高)
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串.如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你. int countTokens ...
- 之前的Android项目报错,新建Android项目报错,代码中找不到错误解决方案
打开一年前的东西,结果发现里面的android项目全部有个红叉,也找不到错误.新建一个项目也报错,首先确定自己的环境应该没问题,然后通过查看网上的资料,发现可能是debug的keystore到期啦. ...
- 第一个c++程序 helloworld
// helloworld.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include "iostream" int ...
- Objective-C学习笔记
. 链接:Objective-C学习笔记 (pdf版) .
- Load Balancing 折半枚举大法好啊
Load Balancing 给出每个学生的学分. 将学生按学分分成四组,使得sigma (sumi-n/4)最小. 算法: 折半枚举 #include <iostrea ...
- Android小项目之十二 设置中心的界面
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- python编写telnet登陆出现TypeError:'str' does not support the buffer interface
python3支持byte类型,python2不支持.在python3中,telnet客户端向远程服务器发送的str要转化成byte,从服务器传过来的byte要转换成str,但是在python2不清楚 ...