数组:
Cocoa 使用NSArray 表示数组,但是不能存储基本类型、enum、struct、nil,只能存储
Object-c 对象。
1、数组遍历
NSArray* array=[NSArray arrayWithObjects: @"one",@"Two",@"Three"];//定义数组并赋值
int count=[array count];
int i:
for(i=0;i<count;i++){
// 遍历数组元素,objectAtIndex 方法获取指定索引位置的元素
NSLog(@"%@",[array objectAtIndex:i]);
}
数组迭代器
NSEnumerator* e=[mArray objectEnumerator];// 获取数组迭代器 ,相当于java中的Iterator
id obj;
while(obj=[e nextObject]){
NSLog(@"%@",obj);
}
printf(".............................>>");
for(NSString *ms in mArray){
NSLog(@"@%@",ms);
}
2、字符串与数组间的处理
NSString* s=@"iphone,Android,Widowns Phone7";
NSArray array=[s componentsSeparatedByString:@","];// 用“,”分割,类似于java中的splict
NSString* s=[array componentsJoinedByString: @" "];//拼接数组元素 按照“”里面的字符
3、数组定义
NSMutableArray* mArry=[NSMutableArray arrayWithCapacity:10];//定义一个数组并指定数组长度
[mArray addObject: @"Apple"];// 像上面的数组中添加一个元素
[mArray addObject:@"Google"];
[mArray addObject:@"MicroSoft"];
[mArray removeObjectAtIndex: 2];// 移除指定索引位置的数组元素
s=[mArray componentsJoinedbyString: @","];
4、字典(哈希表)
NSDictionary 用于存储key-value 的数据结构,与java中的map类似。
例:
// dictionaryWithObjectAndKeys后的可变参数,每两个为一个value-key,一nil表示结束。
NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:@"Apple",@"A",@"Google",@"G",nil];
长度可变的字典:
NSMutableDictionary
例:
NSMutableDictionary *mDic=[NSMutableDictionary dictionaryWithCapacity:10 ];
[mDic setObject:@"Apple" forKey: @"A"];//添加value-key 对
[mDic setObject:@"Googel" forkey: @"G"];
[mDic removeObjectForKey: @"A"];// 移除指定的key的value
快速迭代for -each 循环
NSEnumerator *keyEnum=[mDic keyEnumerator];//获取key的枚举器
id key;
while(key=[keyEnum nextObject]){
NSLog(@"%@",key,[mDic objectForKey:key]);
}
5、哈希 Set
NSSet表示以hash方式计算存储位置的集合,与java 中的HashSet是一致的。在NSSet中的每个对象都有一个唯一的hash值,重复的对象将只能保留一个。