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(七):一般优化方法简介及混合模式
关于事件的优化: 遍历注册的事件由foreach改变为fori,在大量数据遍历时会有提升: 事件池优化: 所有的事件都使用一个对象池进行保存,而不是使用到时进行创建,使用EventDispatcher ...
- 二、FreeMarker 模版开发指南 第二章 数值和类型
章节内容如下: 基本内容 类型 一.基本内容 简介 什么是数值? 什么是类型? 数据模型是哈希表 a.简介 理解数值和类型的概念是理解数据模型的关键所在.然而,数值和类型的概念并不局限于数据模型, ...
- linux下eclipse的安装
Eclipse的安装http://java.sun.com/javace/downloads/index.jsp下载:Jdk-6u17-linux-i586.binhttp://www.eclipse ...
- cc2530 timer 3 PWM <可调占空比>
前提: 开始用的是 cc2530 timer 1来做PWM的,已经可调占空比了,但是由于硬件的改动,需要用timer 3 和 timer 4 代替.由于调试过程中出了些小问题,于是自己把这个贴出来.关 ...
- SQL Server内存性能分析
内存概念: Working Set = Private Bytes + Shared Memory Working Set:某个进程的地址空间中,存放在物理内存的那一部分 Private Bytes: ...
- 博客转移到lyso.me
博客转移到http://lyso.me :)
- 【20】宁以pass-by-reference-to-const替换pass-by-value
1.首先理解需求,被调用方法修改了形参,如果期望在主调方法中的实参也发生变化,必须使用pass-by-reference.因为C++缺省情况下(继承C方式),以by-value传递对象,在被调方法中修 ...
- ORM之二:核心接口与扩展操作
一.数据库提供者接口 /// <summary> /// 数据库提供者 /// </summary> public interface IDbProvider : IDispo ...
- linux僵死进程的产生与避免
作者:lingdxuyan来源:ChinaUnix技术博客,本文版权由lingdxuyan所有,如需转载,请注明出处. 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, ...
- Git链接到自己的Github(2)进阶使用
接着上一篇的,从github clone下代码. 1.先查看当前开发分支 $ cat .git/HEAD ref: refs/heads/master 这里的master是默认分支. 2.查看当前状态 ...