数组:可重复,有序

不可变数组

创建数组

//array开头的方法是类方法,init开头的是实例方法

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

NSArray *arr=[NSArray arrayWithObjects:@"",@"",@"",nil];

NSArray *arr=@[@"",@"",@""];

//查找元素的索引号

[arr indexOfObject:@""];

//获取元素在指定集合里的位置

[arr indexOfObject:@"" inRange:NSMakeRange()];

//根据索引获取元素

[arr objectAtIndex:i];

arr[i];

//将指定范围的元素整合成一个新的数组

NSArray* array=[arr objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(2,3)]];

//在一个数组的基础上创建新的数组

array=[array arrayByAddingObject:@""];

array=[array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"",@"",nil];

NSString* str=[array componentsJoinedByString:@","];


//对数组整体调用方法

makeObjectsPerformSelector:

makeObjectsPerformSelector:WithObjects:

//对数组进行隐式遍历,并对元素调用block

enumerateObjectsUsingBlock:

enumerateObjectsWithOptions:usingBlock:

enumerateAtIndexes:options:usingBlock:

//block必须传入三个参数,第一个参数表示 正在遍历的元素,第二个表示遍历的元素的索引号,第三个参数用于遍历的代码块;

//对数组进行排序

最常用的排序方法:

sortedArrayUsingFunction:context:

sortedArrayUsingselector:

sortedArrayUsingComparator:

#warning 实验:创建排序方法

//对数组元素进行遍历

方法:

1.for循环遍历

2.枚举器遍历:

//数组有方法objectEnumerator,reverseObjectEnumerator来返回一个枚举器;

//枚举器有方法 nextObject,allObjects;

Enumerator* en=[array objectEnumerator];

id obj;

while(obj=[en nextObject]);

{

//对元素执行的方法

}

3.for-in快速枚举

语法:for(type variableName in collection)

{

}

4.使用代码块进行隐式遍历

enumeratorObjectsUsingBlock:

【学习笔记】【Foundation】数组的更多相关文章

  1. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  2. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  3. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  4. JavaScript学习笔记:数组reduce()和reduceRight()方法

    很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...

  5. [Golang学习笔记] 07 数组和切片

    01-06回顾: Go语言开发环境配置, 常用源码文件写法, 程序实体(尤其是变量)及其相关各种概念和编程技巧: 类型推断,变量重声明,可重名变量,类型推断,类型转换,别名类型和潜在类型 数组: 数组 ...

  6. go 学习笔记之数组还是切片都没什么不一样

    上篇文章中详细介绍了 Go 的基础语言,指出了 Go 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍加记忆就能轻松从已有的编程语言切换到 Go 语言的编程习惯中,尽管这种切换可能并不是特 ...

  7. [学习笔记]JS 数组Array push相关问题

    前言: 今天用写了一个二维数组,都赋值为零,然后更新其中一个值,结果和预期是不一样,会整列的相同位置都是同一个值. 1.用Chrome的控制台样例如下: arrs[2][2] =1的赋值,竟然是三个数 ...

  8. es6学习笔记一数组(中)

    接着上一篇,给大家再分享一些数组的其他方法.大家也可以去点击这里学习数组更多的方法 concat方法: 概述:    concat() 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回. ...

  9. TSPL学习笔记(4):数组相关练习

    最近研究函数式编程,都是haskell和scheme交互着看的,所以笔记中两种语言的内容都有,练习一般也都用两种语言分别实现. 本篇练习一些数组有关的问题,之所以与数组相关是因为在命令式编程中以下问题 ...

  10. JavaScript新手学习笔记1——数组

    今天,我复习了一下JavaScript的数组相关的知识,总结一下数组的API: 总共有11个API:按照学习的先后顺序来吧,分别是: ① toString()  语法:arr.toString(); ...

随机推荐

  1. Ubuntu中Samba的安装配置和使用[图文]

    Samba服务在Ubuntu服务器版本中默认并没有安装. 1. Samba软件包的安装 使用源安装,在终端中输入如下命令: #sudo apt-get install samba#sudo apt-g ...

  2. 话说python

    前几年就职于一个大的软件公司时,开发过程中,有一个流程化的步骤要做,就是要由一个excel文档导出生成一堆sql语句.当时使用一个高手写的代码,只不过有限几行代码(应该不到100行),就完美实现此功能 ...

  3. 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持

    不同的游戏对于手柄的支持程度是不一样的,对应所需要进行的手柄设置也不尽相同.我没有这样的时间和精力,针对每一款游戏去写博客,但找出不同游戏中的共同点,针对同一类的游戏去写博客,应该是可行的.我把安卓上 ...

  4. 使用GDB生成coredump文件【转载】

    本文转载自: http://blog.csdn.net/sky_qing/article/details/8548989 如果在测试过程中遇到某个进程的CPU利用率过高或者卡死而需要去调试该进程时,可 ...

  5. HDOJ 2102

    如果传送门'#'的另一层是传送门'#'或者是墙'*',就可以理解为这两层的这个位置都是'*'了 还有就是传送门'#'传过去可以是空地'.' 也可以是目的地'P',不要忽略了 #include < ...

  6. HBase技术介绍

    HBase简介 HBase - Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HB ...

  7. Mysql + keepalived 实现双主热备读写分离【转】

    Mysql + keepalived 实现双主热备读写分离 2013年6月16日frankwong发表评论阅读评论   架构图 系统:CentOS6.4_X86_64软件版本:Mysql-5.6.12 ...

  8. cocos2d-x 3.6版连连看载入资源

    网上找了一个梦幻连连看的资源.大家能够百度一下.然后整理一下加到project里面去.包含声音和图片文件.后面解释怎样整理能够方便管理. 我不推荐在代码里面直接引用资源文件名称,我称之为硬编码. 做i ...

  9. [转] 为什么医疗咨询服务公司Evolent Health仅用4年就华丽上市?

    让医疗主体,即医院和医生担任保险角色,完全控制保费,实现医疗机构的利益最大化.美国公司EvolentHealth帮助所有医院实现这一梦想. 不觉间,已步入2015的下半年.当国内还在讨论商业保险何时能 ...

  10. Java基础知识强化20:面向对象和面向过程的思想对比

    面向对象与面向过程的区别  1. 与面向对象编程思想相比较的,往往是面向过程的编程思想,其实在我来理解,两者并不冲突,原因是面向对象的编程也必须使用面向过程的思维来实现具体的功能,所以我认为,两者的区 ...