OC-Day4____数组与字典

2015.3.3

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

//利用i值遍历数组

NSArray *array = [NSArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five", nil];

//NSLog(@"array = %@", array);

#if 0

NSInteger len = [array count];

for (NSInteger i=0; i<len; i++) {

NSLog(@"%@", [array objectAtIndex:i]);

}

#endif

#if 0

//枚举器遍历数组

//正序枚举数组

NSEnumerator  *enum1 = nil;

enum1 = [array objectEnumerator];

id obj = nil;//obj对象指针必须定义在循环外面

while (obj = [enum1 nextObject]) {

NSLog(@"%@", obj);

}

//倒序枚举数组

NSEnumerator *enum2 = [array reverseObjectEnumerator];

id obj2 = nil;

while (obj2 = [enum2 nextObject]) {

NSLog(@"%@", obj2);

}

#endif

//快速枚举法遍历数组

for (id obj in array) {

NSLog(@"%@", obj);

}

}

return 0;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

NSArray *array = @[@"one",@"two",@"three",@"four",@"five",@"six",@"seven"];

//        array = [array sortedArrayUsingSelector:@selector(compare:)];

//        NSLog(@"array = %@", array);

NSMutableArray *mulArray = [NSMutableArray arrayWithArray:array];

array = [mulArray sortedArrayUsingSelector:@selector(compare:)];

NSLog(@"array = %@", array);

}

return 0;

}

#import <Foundation/Foundation.h>

//NSDictionary

//创建不可变字典

//字典对象中的没有元素都是一个键值对

//key : vlaue

//key 与 vlaue可以为任意类型的对象

//通常 key 用字符串类的对象表示

int main(int argc, const char * argv[]) {

@autoreleasepool {

//xcode 4.6之后

//创建字典对象

NSDictionary *dict = @{@"one":@"1",@"two":@"2",@"three":@"3",@"four":@"4"};

NSLog(@"dict = %@", dict);

//- (instancetype)initWithObjectsAndKeys:(id)firstObject...

NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three", nil];

NSLog(@"dict1 = %@", dict1);

//用传入字典对象创建一个新的字典对象

//- (instancetype)initWithDictionary:(NSDictionary *)otherDictionary;

NSDictionary *dict2 = [NSDictionary dictionaryWithDictionary:dict1];

NSLog(@"dict2 = %@", dict2);

//用value的数组及key的数组创建字典对象

//- (instancetype)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys;

NSArray *values = @[@"1",@"2",@"3",@"4"];

NSArray *keys = @[@"one",@"two",@"three",@"four"];

NSDictionary *dict3 = [NSDictionary dictionaryWithObjects:values forKeys:keys];

NSLog(@"dict3 = %@", dict3);

//字典的其它操作方法

//获取字典对象键值对个数

NSInteger cnt = [dict count];

NSLog(@"cnt = %ld", cnt);

//通过key获取对应的值

id obj = [dict objectForKey:@"three"];

NSLog(@"obj = %@", obj);

//获取字典中所有的key

NSArray *allKeys = [dict allKeys];

NSLog(@"allKeys = %@", allKeys);

//通过值找到该值对应的所有的key

NSDictionary *dict4 = @{@"one":@"1", @"two":@"1",@"three":@"3",@"four":@"3"};

NSArray *keys1 = [dict4 allKeysForObject:@"1"];

NSLog(@"keys1 = %@", keys1);

//获取所有的值

NSArray *values1 = [dict4 allValues];

NSLog(@"values1 = %@", values1);

//判断两个字典是否相等

BOOL ret = [dict isEqualToDictionary:dict4];

NSLog(@"ret = %d", ret);

//字典遍历

//i值遍历

NSInteger len = [dict count];

NSArray *keys2 = [dict allKeys];

for (NSInteger i=0; i<len; i++) {

NSLog(@"key = %@ value = %@", [keys2 objectAtIndex:i], [dict objectForKey:[keys2 objectAtIndex:i]]);

}

//枚举器法

NSEnumerator *keyEnum = [dict keyEnumerator];

id keyObj = nil;

while (keyObj = [keyEnum nextObject]) {

NSLog(@"%@:%@",keyObj,[dict objectForKey:keyObj]);

}

//枚举值

NSEnumerator *valueEnum = [dict objectEnumerator];

id valueObj = nil;

while (valueObj = [valueEnum nextObject]) {

NSLog(@"%@", valueObj);

}

//快速枚举法

//枚举的是key而不是value, 但是可以通过key查找对应的值

for (id keyObj in dict) {

NSLog(@"%@:%@", keyObj,[dict objectForKey:keyObj]);

}

}

return 0;

}

#import <Foundation/Foundation.h>

//NSMutableDictionary

//创建可变字典对象

//继承与NSDictionary

int main(int argc, const char * argv[]) {

@autoreleasepool {

//创建一个空的字典对象

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

NSMutableDictionary *mulDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4",@"four", nil];

NSLog(@"mulDict = %@", mulDict);

//通过key删除对应的键值对

[mulDict removeObjectForKey:@"four"];

NSLog(@"mulDict = %@", mulDict);

//创建一个指定容量的可变字典对象

NSMutableDictionary *mulDict1 = [NSMutableDictionary dictionaryWithCapacity:12];

//把传入的字典键值对添加到可变字典中

[mulDict1 addEntriesFromDictionary:mulDict  ];

[mulDict1 addEntriesFromDictionary:@{@"five":@"5",@"six":@"6",@"one":@"2"}];

NSLog(@"mulDict1 = %@", mulDict1);

//key在字典中是唯一的

NSMutableDictionary *mulDict2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"one", nil];

NSLog(@"mulDict2 = %@", mulDict2);

//删除所有的键值对

[mulDict2 removeAllObjects];

NSLog(@"mulDict2 = %@", mulDict2);

//利用key的数组, 删除key数组对应的键值对

NSArray *keyArray = @[@"one",@"two"];

[mulDict1 removeObjectsForKeys:keyArray];

NSLog(@"mulDict1 = %@", mulDict1);

//用传入的字典对象重置可变字典

[mulDict1 setDictionary:@{@"hello":@"1",@"world":@"2"}];

NSLog(@"mulDict1 = %@", mulDict1);

}

return 0;

}

时间: 2024-10-14 13:07:50

OC-Day4____数组与字典的相关文章

OC - 数组、字典、集合

数组是一个有序的集合,OC中的数组只能存储对象类型,对于对象的类型是没有限制的 NSArray:不可变数组 :对象创建好以后,数组中的元素个数不能发生变化 NSSMutableArray : 可变数组 : 对象创建好以后,数组中的元素可以灵活进行增删改操作 NSArray *names = [[NSArray alloc] initWithObjects:@"frank", @123, @"monkey", nil]; 注意 : nil作为数组存放元素的结束标志,多

OC中如何把数组中字典的数据转换成URL?

在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么实现的呢?今天小编就将为大家分享一篇在网上看到的一位大神对Objective-C中把数组字典的数据转换成URL的剖析,一起来看看吧. 1.生成测试数据 字典中的键,我们一般是通过宏定义来初始化的,目的是便于维护,提高代码编写效率,下面是对key的宏定义: //定义字典键 #define A @"a&

Swift 之数组与字典

http://www.cocoachina.com/swift/20151230/14802.html 说到数组和字典,只要是编过程的小伙伴并不陌生.在Swift中的数组与字典也有着一些让人眼前一亮的特性,今天的博客就来窥探一下Swift中的Array和Dictionary.还是沿袭之前的风格,在介绍Swift中的数组时,我们会对比一下ObjC中的数组和字典,因为ObjC也是iOS开发的主要语言不是.无论是简单还是复杂的程序,数组和字典的用处还是比较多的,这两者虽然是Swift的基础内容,但是也

字符串数组和字典

[字段的权限] [注]在类中声明字段,可以为字段添加权限 @private 私有权限 @protected 保护权限 @public 公有权限 @interface Father : NSObject { @private    //私有权限修饰的变量,不能被子类继承,不能被外部函数访问.     int a; @protected  //缺省权限 保护权限修饰的变量,可以被子类继承,不能被外部函数访问.     int b;     int c; @public     //公有权限修饰的变量

Objective-C中把数组中字典中的数据转换成URL

可能上面的标题有些拗口,学过PHP的小伙伴们都知道,PHP中的数组的下标是允许我们自定义的,PHP中的数组确切的说就是键值对.而在OC我们要用字典(Dictionary)来存储,当然了Java用的是Map来存储键值对.下面我们将实现一个极为实用的小例子,网络请求有get和post方法,两种方法各有其优点.在表单提交时Post方法用的更多一些,URL传值则会用到Get方法.在用PHP编程的时候肯定会经常拼接url来传参或者请求,在IOS开发中会向服务器通过url请求一些数据,所以对url的拼接是少

Swift - 1 (常量、变量、字符串、数组、字典、元组、循环、枚举、函数)

Swift 中导入类库使用import,不再使用<>,导入自定义不再使用"" import Foundation 1> 声明变量和常量 在Swift中使用 "let" 修饰一个常量,使用 "var" 修饰一个变量; let修饰常量的值是不可以更改的: var修饰的变量的值是可以更改的: 在声明常量和变量的时候可以使用表情符号.中文等命名常量名和变量名. Swift定义变量或者常量的时候,需要标识出变量或者常量的类型,如果不标识,

黑马程序员-Foundation框架之数组和字典

一.Foundation框架简介 Foundation框架,顾名思义就是基础框架.基础框架上的类都是与用户界面无关的,为所有的程序开发提供一个基础.OC的基础框架常用的类包括:数组,字典,数字,字符串等以及它们的子类.要使用这个框架需要在引入头文件#import <Foundation/Foundation.h> 二.数组 NSArray类以及它的子类NSMutableArray,一个是不可变数组,一个是可变数组.下面通过代码来看一下它的一些基本的用法. 1 #import <Found

OC 第七天 字典 lesson7

NSDictionary 常用方法 NSDictionary用于保存具有映射关系的数据,因此,NSDictionary集合里保存着两组值: 一组用于保存NSDictionary里的key 另一组用于保存NSDictionary里的value 其中key与value都可以是任何引用类型的数据,key与value之间存在单向一对一的关系.(key不允许重复) 1.创建字典对象: NSDictionary * dicYaoGe = [NSDictionary dictionaryWithObjects

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

Swift的数组与OC中数组的区别

相同的值可以多次出现在一个数组的不同位置: Swift中的数组,数据值在被存储进入到某个数组之前类型必须明确,可以显示的类型标注或者类型推断.而且,Swift中的数组不必是对象类型. OC中的NSArray和NSMutableArray,他们可以存储任何类型的实例,而且不提供他们返回对象的任何本质信息. Swift的数组与OC中数组的区别,布布扣,bubuko.com