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:$ ...
随机推荐
- 只允许input框输入数字,输入其他的键的时候,直接不显示的方法
function numInteger(){ if((event.keyCode>=48 && event.keyCode<=57) || (event.keyCode& ...
- Android 解析 xml
URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection )httpUrl.openConnection(); c ...
- ASP.Net Core-依赖注入IoC
一.Ioc IoC全称Inverse of Control,控制反转. 类库和框架的不同之处在于,类库是实现某种单一功能的API,框架是针对一个任务把这些单一功能串联起来形成一个完整的流程,这个流程在 ...
- Android Studio Error2
ECLIPSE ANDROID PROJECT IMPORT SUMMARY ====================================== Ignored Files: ------- ...
- memset函数具体说明
1.void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c. 2.样例#include void main(){char ...
- lightoj1104(数学概率与期望)
题意: 增加一年有n天; 那么至少有几个人,能够保证至少两个人同一天生日的概率大于等于0.5; 思路: 转化一下题意; 就是求全部人生日都不同的概率小于等于0.5(那么至少两个人同一天就是大于等于0, ...
- [Bootstap] 9. Dropdown
Dropdown Arrow Class In order to create a down arrow like this: , what class should we apply to the ...
- Java中的NIO和IO的对比分析
总的来说,java中的IO和NIO主要有三点区别: IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器(Selectors) 1.面向流与面向缓冲 Java NIO和IO之间第一个最大的 ...
- Google stuff
Google Pro Tip: Use Back-of-the-envelope-calculations to Choose the Best Design - High Scalability - ...
- 文件I/O之ioctl函数
ioctl函数是I/O操作的杂物箱.不能用其他函数表示的I/O操作通常都能用ioctl表示.终端I/O是ioctl的最大使用方面. ioctl函数通过对文件描述符发送特定的命令来控制文件描述符所代表的 ...