OC2_数组操作
//
// main.m
// OC2_数组操作
//
// Created by zhangxueming on 15/6/11.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
//NSArray int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array1 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil];
//计算数组的元素的个数
NSInteger cnt = [array1 count];
NSLog(@"cnt = %li", cnt);
//获取指定位置的对象
id obj = [array1 objectAtIndex:];
NSLog(@"obj = %@", obj);
//添加数组元素
NSArray *array2 = [array1 arrayByAddingObject:@"six"];
NSLog(@"array2 = %@", array2); //将传入数组中的所有元素添加到数组中
NSArray *otherArray = [[NSArray alloc] initWithObjects:@"hello",@"world", nil];
NSArray *array3 = [array1 arrayByAddingObjectsFromArray:otherArray];
NSLog(@"array3 = %@", array3); //用给定的分割符连接数组中的元素
NSString *str = [array3 componentsJoinedByString:@"##"];
NSLog(@"str = %@", str);
//判断是否包含某个对象
BOOL ret = [array3 containsObject:@"hello"];
NSLog(@"ret = %i", ret) ;
//返回两个数组中第一个相同的对象
id obj2 = [array3 firstObjectCommonWithArray:otherArray];
NSLog(@"obj2 = %@", obj2); //返回传入对象在数组中第一次出现的位置
NSArray *array4 = [NSArray arrayWithObjects:@"one",@"two",@"three",@"one",@"two", nil];
NSUInteger index = [array4 indexOfObject:@"two"];
NSLog(@"index = %lu", index); //返回传入对象在指定范围内第一次出现的位置
NSUInteger index2 = [array4 indexOfObject:@"two" inRange:NSMakeRange(, )];
NSLog(@"index2 = %lu", index2); //判断两个数组是否相等
BOOL ret3 = [array2 isEqualToArray:array3];
NSLog(@"ret3 = %d", ret3);
//获取数组中的第一个元素
id obj3 = [array4 firstObject];
NSLog(@"obj3= %@", obj3);
//获取数组中最后一个元素
id obj4 = [array4 lastObject];
NSLog(@"obj4 = %@", obj4); //数组的遍历
//方法一: 下标法
NSArray *array5 = @[@"one",@"two",@"three",@"four"];
NSUInteger len = [array5 count];
for (NSInteger i=; i<len; i++) {
NSLog(@"%@", [array5 objectAtIndex:i]);
}
//方法二: 枚举器法
//生成枚举器对象
NSEnumerator *enumerator = [array5 objectEnumerator];
id item = nil;
while (item = [enumerator nextObject]) {
NSLog(@"item = %@", item);
}
//倒序遍历数组
NSEnumerator *reverseEnumerator = [array5 reverseObjectEnumerator];
id item2 = nil;
while (item2 = [reverseEnumerator nextObject]) {
NSLog(@"item = %@", item2);
} //方法三: 快速枚举法
for (id item in array5) {
NSLog(@"%@", item);
} //数组排序
NSArray *array6 = @[@"one",@"two",@"three",@"four",@"five"];
NSArray *sortArray = [array6 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"sortArray = %@", sortArray);
//数组提取
NSArray *subArray = [array6 subarrayWithRange:NSMakeRange(, )];
NSLog(@"subArray = %@", subArray); //以给定下标集合提取数组
NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] initWithIndex:];
[indexSet addIndex:];
[indexSet addIndex:];
NSArray *subArray2 = [array6 objectsAtIndexes:indexSet];
NSLog(@"subArray2 = %@", subArray2);
}
return ;
}
OC2_数组操作的更多相关文章
- Javascript数组操作
使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- php数组操作集锦- 掌握了数组操作, 也就掌握了php
参考下面的文章, 是很好的: http://www.cnblogs.com/staven/p/5142515.html http://pcwanli.blog.163.com/blog/static/ ...
- JavaScript 数组操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript中数组操作常用方法
JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...
- php 常用数组操作
php常用的数组操作函数,包括数组的赋值.拆分.合并.计算.添加.删除.查询.判断.排序等 array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 <?p ...
- 005-Scala数组操作实战详解
005-Scala数组操作实战详解 Worksheet的使用 交互式命令执行平台 记得每次要保存才会出相应的结果 数组的基本操作 数组的下标是从0开始和Tuple不同 缓冲数组ArrayBuffer( ...
- JavaScript中常见的数组操作函数及用法
JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...
- jQuery_03之事件、动画、类数组操作
一.事件: 1.模式触发事件: ①DOM:elem.onXXX();只能触发直接用onXXX绑定的事件处理函数:用addEventistener添加的事件监听无法模拟出发触发: ②jQuery:$ ...
随机推荐
- 【Stage3D学习笔记续】山寨Starling(六):动画实现和测试
我发布了一个版本v0.2,该版本是未优化版本,且没有添加Touch事件体系,但是由于是最基础且未优化的,所以可以通过参考代码快速的了解实现原理. 接下来的一段笔记开始进行渲染优化,我会把所有的目光都集 ...
- 利用Microsoft Azure Machine Learning Studio创建机器学习实例
Microsoft Azure云服务推出机器学习的模块,用户只需上传数据,利用机器学习模块提供的一些算法接口和R语言或别的语言接口,就能利用Microsoft Azure强大的云计算能力来实现自己的机 ...
- ECSHOP在线手册之模板结构说明 (适用版本v2.7.3)
名称 类型 备注(作用或意义) 文件(目录)名可否更改 images 目录 存放模板图片目录 不可更改 library 目录 存放模板库文件目录 不可更改 screenshot.png 图片 用于“后 ...
- Java数据类型(一)
1 public class VarDemo 2 { 3 public static void main(String []args){ 4 //先声明后赋值 5 int number; 6 numb ...
- C#-datagridview隐藏行头
在进行datagridview的设置的过程中,常常会遇到需要设定datagridview1的行头显示,这就需要用到datagridview的属性: RowHeadersVisible属性设置为fals ...
- Windows内核之进程基本含义以及进程的创建
进程 1 进程的含义: 1.1 一个是操作系统用来管理进程的内核对象. 内核对象也是系统用来存放关于进程的统计信息的地方. 1.2 还有一个是地址空间,它包括全部可运行模块或DL L 模块的代 ...
- Asp.Net转换Html加号显示为空格的字符!(自已备用)
Asp.Net转换Html显示为空格的字符!(自已备用) 显示+(加号),须要替换一下!
- cocos2d-x读取xml(适用于cocos2d-x 2.0以上版本号)
为了能在cocos2d-x的文本标签中显示中文,一个是转换文件编码格式,还有一种就是读取utf-8格式的xml文件.我选择了后者,其原因大家可以去搜索一下cocos2d-x显示中文,希望可以你给答案. ...
- [001]const和指针
很经典的: const int* p: int* const p: 前者表示指针指向的值是const,指向的值不可变,但是指针本身是可变的:后者表示改指针是const,指针不可变,但是指向的值是可变的 ...
- Ⅱ.spring的点点滴滴--对象
承接上文 对象的各种实例化 .net篇(环境为vs2012+Spring.Core.dll) 修改原来的PersonDao对象为 public class PersonDao : IPersonDao ...