数组NSArray与NSMutableArray的常用方法
数组中可以放任何类型的数据,并且一个数组中的元素类型可以不一致。只要是(id类型)对象。
NSArray
1、初始化
NSArray *array = @[@"", @"", @];
2、初始化,最后需要以nil结尾
NSArray *array = [[NSArray alloc] initWithObjects:@"", @"", nil];
3、初始化,使用一个数组初始化另一个数组
NSArray *array = [[NSArray alloc] initWithArray:@[@""]];
4、初始化,类方法,最后需要以nil结尾
NSArray *array = [NSArray arrayWithObjects:@"-", @"+", @"=", nil];
5、拼接,将一个新对象拼接在数组的后面,拼接后返回新的数组
NSArray *array1 = @[@"", @""];
NSArray *array2 = [array1 arrayByAddingObject:@""];
6、拼接,将另个数组中的所有对象,拼接到数组后面,拼接后返回新的数组
NSArray *array1 = @[@"", @""];
NSArray *array2 = [array1 arrayByAddingObjectsFromArray:array1];
7、连接,以某个连接符(字符串)连接数组中所有的对象,然后以字符串返回连接后的结果
NSArray *array = @[@"", @""];
NSString *string = [array componentsJoinedByString:@"*"];
//一般只用于数组元素全部为字符串类型的数组
8、根据索引提取相应的元素
NSArray *array = @[@"", @"", @];
NSString *string = [array objectAtIndex:];
9、根据数组的元素得到对应的索引
NSArray *array = @[@"", @""];
NSUInteger integer = [array indexOfObject:@""];
10、取首尾元素
NSArray *array = @[@"", @""];
NSString *firstString = [array firstObject];
NSString *lastString = [array lastObject];
NSInteger count = [array count];
//当count = 1时,firstObject和objectAtIndex:0取出的是相同的对象。
//当count = 0时,firstObject取出的是null,objectAtIndex:1会使得程序异常退出(越界访问)。
11、使用自定义的OC数组排序函数,将数组元素进行排序
NSInteger comp(id objc1, id objc2, void *p) {
// -1升序,不交换元素
// 0相等,不交换元素
// 1降序,交换元素
if ([objc1 compare:objc2] == ) {
return ;
}else {
return ;
}
}
NSArray *array1 = @[@"", @""];
NSArray *array2 = [array1 sortedArrayUsingFunction:comp context:nil];
NSMutableArray
1、初始化
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
2、根据索引号(不可越界)插入元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
[mArray insertObject:@"" atIndex:];
3、添加元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
[mArray addObject:@];
4、匹配并删除元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", @"", nil];
[mArray removeObject:@""];
// 一次性把两个@"2"都删除
5、根据range删除元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", @"", nil];
NSRange range = {, };
[mArray removeObject:@"" inRange:range];
6、删除所有元素
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
[mArray removeAllObjects];
7、根据索引移除元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
[mArray removeObjectAtIndex:];
8、根据索引替换元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
[mArray replaceObjectAtIndex: withObject:@""];
9、交换元素。返回void
NSMutableArray *mArray = [[NSMutableArray alloc] initWithObjects:@"", @"", @"", nil];
[mArray exchangeObjectAtIndex: withObjectAtIndex:];
数组NSArray与NSMutableArray的常用方法的更多相关文章
- NSArray和NSMutableArray的常用方法 (转)
NSArray和NSMutableArray的常用方法 (转) (2013-09-06 15:13:46) 标签: it 分类: ios编程 初始化方法: 1.init返回一个空数组 2.i ...
- IOS数组NSArray与NSMutableArray知识点
此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundati ...
- 15.Object-C--浅谈Foundation框架OC数组NSArray与NSMutableArray
昨天总结了一下NSString与NSMutableString,今天我在这里总结一下NSArray与NSMutableArray. NSArray数组是:不可变数组. nil 是数组元素结束的标记.O ...
- NSArray和NSMutableArray相互转换, 以及常用方法-备
有时候项目中NSArray和NSMutableArray需要相互转化,下面给出相关代码1.NSArray 1.1 转化:NSMutableArray 1 NSMutableArray *mutable ...
- NSArray,NSMutableArray的一些常用方法
不可变数组 ——NSArray 常用的初始化一个数组: NSArray *array1 = [[NSArray alloc] init]; NSArray *array2 = ...
- iOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)
iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的, 可以存放重复的元 ...
- NSArray与NSMutableArray 数组与可变数组
1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...
- Foundation框架—— 数组 (NSArray NSMutableArray )
基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...
- 【转】不可变数组NSArray与可变数组NSMutableArray
原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...
随机推荐
- RabbitMQ连接池、生产者、消费者实例
1.本文分享RabbitMQ的工具类,经过实际项目长期测试,在此分享给发家,各位大神有什么建议请指正 !!! 2.下面是链接池主要代码: import java.util.HashMap; impor ...
- FYF的煎饼果子
利用等差数列公式就行了,可以考虑特判一下m >= n($ m, n \neq 1 $),这时一定输出“AIYAMAYA”. #include <iostream> using nam ...
- C++学会STL
1.1 泛型程序设计简介 泛型程序设计,简单地说就是使用模板的程序设计法.将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什 ...
- pdf.js的使用 (3)真实项目分享
需求:a.jsp页面要做一个pdf的预览功能,我采用layer.open()弹窗的形式来预览pdf 1.在a.jsp点击文件然后弹出窗口(其实是弹出b.jsp) var lay=layer.open( ...
- 吴裕雄 PYTHON 神经网络——TENSORFLOW 滑动平均模型
import tensorflow as tf v1 = tf.Variable(0, dtype=tf.float32) step = tf.Variable(0, trainable=False) ...
- 吴裕雄 python 神经网络——TensorFlow 图像处理函数
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt image_raw_data = tf.gfile ...
- CentOS 7控制台屏幕分辨率问题
我们在服务器上,很少会安装图形化界面,一般都使用字符界面的控制台.CentOS 下,控制台分辨率缺省情况下,变得很高,导致在显示器上花屏或者只能显示局部. 这是由于使用了frame buffer,好处 ...
- 【原】Django问题总结
一:python manage.py makemigrations No changes detected 在修改了models.py后,有些用户会喜欢用python manage.py makemi ...
- linux和windows系统的区别
在21世纪的今天,互联网可以说是当代发展最为迅速的行业,举个很简单的例子,现在的我们不论什么年龄阶层,几乎人手都有一部手机,上面的某博,某音,末手等软件,更是受到多数人的热爱,并且人们不仅仅用其来消遣 ...
- 「Luogu P1975 [国家集训队]排队」
题目大意 给出一个序列 \(h\),支持交换其中的两数,求出每一时刻的逆序对个数. 分析 求逆序对是 \(O(N\log_2N)\) 的,有 \(M\) 个操作,如果暴力求的话时间复杂度就是 \(O( ...