数组遍历排序
2016-02-14 21:50
267 查看
// 集合的遍历 NSSet(集合)
NSDictionary *dictionary = [NSDictionary
dictionaryWithObjectsAndKeys:@"11",
@"a", @"22",
@"b", @"33",
@"c", nil];
NSLog(@"%@", dictionary);
for (int i =
0; i < dictionary.count; i++) {
// 先根据allKeys以及下标i取出key值
NSString *key = [dictionary.allKeys
objectAtIndex:i];
NSLog(@"%@", [dictionary
objectForKey:key]);
// NSLog(@"%@", key);
// NSString *value = [dictionary.allValues objectAtIndex:i];
// NSLog(@"%@", value);
}
// for in 遍历 (OC一般用它就够了)
NSArray *array =
@[@"q", @"w",
@"e", @"r",
@"d", @"f"];
for (NSString *str
in array) {
NSLog(@"%@", str);
}
NSMutableArray *array1 = [NSMutableArray
arrayWithArray:array];
for (NSString *str1
in array) {
NSLog(@"%@", str1);
if ([str1
isEqualToString:@"w"]) {
[array1 replaceObjectAtIndex:[array1
indexOfObject:str1 ] withObject:@"ww"];
}
// 男神小贴士:
使用for in 循环遍历集合的时候,不能修改 “正在”
遍历的集合
// 当涉及到需要修改正在循环的集合可以复制一份,循环复制出的一份,而修改自己本身
}
for (NSString *str
in array1) {
NSLog(@"%@", str);
}
// NSEnumerator --
枚举遍历
//正序遍历
和 倒序遍历
// NSEnumerator *arrayEnume = [array1 objectEnumerator]; //
正序
NSEnumerator *arrayEnume = [array1
reverseObjectEnumerator]; // 倒序
// 取对象
NSString *str =
nil;
while (str = [arrayEnume
nextObject]) {
NSLog(@"�%@", str);
}
// 排序
NSArray *sortArray =
@[@"1", @"2",
@"3", @"4",
@"7"];
// NSSortDescriptor --
排序描述符 (老三步)
NSSortDescriptor *des = [[NSSortDescriptor
alloc]
initWithKey:nil
ascending:YES];
// YES-升序 NO-降序
// Key -- 对象内属性对应的键值,字符串这样的对象使用nil
// 常见存储描述的数组
(可以添加多个限定条件,比如按姓名排序,然后按年龄)
// 排序并承接完成排序的数组
// 不可变数组的方法
// NSArray *descriptors = [NSArray arrayWithObject:des];
NSArray *over = [sortArray
sortedArrayUsingDescriptors:[NSArray
arrayWithObject:des]];
NSLog(@"%@", over);
// 可变数组
NSMutableArray *mutableArray = [NSMutableArray
arrayWithArray:sortArray];
// 可变数组可以改变自身
[mutableArray sortUsingDescriptors:[NSArray
arrayWithObject:des]];
NSDictionary *dictionary = [NSDictionary
dictionaryWithObjectsAndKeys:@"11",
@"a", @"22",
@"b", @"33",
@"c", nil];
NSLog(@"%@", dictionary);
for (int i =
0; i < dictionary.count; i++) {
// 先根据allKeys以及下标i取出key值
NSString *key = [dictionary.allKeys
objectAtIndex:i];
NSLog(@"%@", [dictionary
objectForKey:key]);
// NSLog(@"%@", key);
// NSString *value = [dictionary.allValues objectAtIndex:i];
// NSLog(@"%@", value);
}
// for in 遍历 (OC一般用它就够了)
NSArray *array =
@[@"q", @"w",
@"e", @"r",
@"d", @"f"];
for (NSString *str
in array) {
NSLog(@"%@", str);
}
NSMutableArray *array1 = [NSMutableArray
arrayWithArray:array];
for (NSString *str1
in array) {
NSLog(@"%@", str1);
if ([str1
isEqualToString:@"w"]) {
[array1 replaceObjectAtIndex:[array1
indexOfObject:str1 ] withObject:@"ww"];
}
// 男神小贴士:
使用for in 循环遍历集合的时候,不能修改 “正在”
遍历的集合
// 当涉及到需要修改正在循环的集合可以复制一份,循环复制出的一份,而修改自己本身
}
for (NSString *str
in array1) {
NSLog(@"%@", str);
}
// NSEnumerator --
枚举遍历
//正序遍历
和 倒序遍历
// NSEnumerator *arrayEnume = [array1 objectEnumerator]; //
正序
NSEnumerator *arrayEnume = [array1
reverseObjectEnumerator]; // 倒序
// 取对象
NSString *str =
nil;
while (str = [arrayEnume
nextObject]) {
NSLog(@"�%@", str);
}
// 排序
NSArray *sortArray =
@[@"1", @"2",
@"3", @"4",
@"7"];
// NSSortDescriptor --
排序描述符 (老三步)
NSSortDescriptor *des = [[NSSortDescriptor
alloc]
initWithKey:nil
ascending:YES];
// YES-升序 NO-降序
// Key -- 对象内属性对应的键值,字符串这样的对象使用nil
// 常见存储描述的数组
(可以添加多个限定条件,比如按姓名排序,然后按年龄)
// 排序并承接完成排序的数组
// 不可变数组的方法
// NSArray *descriptors = [NSArray arrayWithObject:des];
NSArray *over = [sortArray
sortedArrayUsingDescriptors:[NSArray
arrayWithObject:des]];
NSLog(@"%@", over);
// 可变数组
NSMutableArray *mutableArray = [NSMutableArray
arrayWithArray:sortArray];
// 可变数组可以改变自身
[mutableArray sortUsingDescriptors:[NSArray
arrayWithObject:des]];
相关文章推荐
- 第14周 项目三-OOP版电子词典
- stm32 exti中断
- eclipse卸载自带maven
- eclipse卸载自带maven
- 1047. Student List for Course (25)
- C++和C#之间Socket通信中文乱码
- linux下I2C驱动
- 产品经理常用工具
- 【DRP】——JSP+servlet
- 技术系列2——泛型、集合、数组
- 《暗时间》读书笔记(二)
- 一周复习总结(二)第三周
- CodeForces 620D Professor GukiZ and Two Arrays
- DevOps 高手的九项隐藏技能
- Terminal
- Cron表达式说明
- 情人节吐槽一下刚起步的公众号运营
- Exchange 2010 (一) 为多台CAS/HUB配置证书
- 【JAVA】9、表达式类型的转换
- java定时删除文件夹及文件