NSArray数字和排序
1.数字
int main(int argc, const char * argv[]) {
@autoreleasepool {
//添加空白 [NSNull null]
// NSArray *arr=[NSArray arrayWithObjects:@1,@2,[NSNull null],@3,nil];
// for (id a in arr) {
// NSLog(@"%@",a);
//
// } //添加数字
// NSNumber *arr=[NSNumber numberWithInt:10];
// NSLog(@"%@",arr);
//数值类型转整形
// NSLog(@"%d",[arr intValue]); NSNumber *num1=[NSNumber numberWithInt:];
NSNumber *num2=[NSNumber numberWithInt:];
NSNumber *num3=[NSNumber numberWithInt:];
NSArray *numArr=[NSArray arrayWithObjects:num1,num2,num3,nil];
for (id a in numArr) {
// NSLog(@"%@",a);
NSLog(@"%d",[a intValue]+);
} // NSArray *arr=[NSArray arrayWithObjects:@1,@2,@3,nil]; }
return ;
}
2.排序1
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {
@autoreleasepool {
// NSArray *arr=@[@"lisi",@"wangwu",@"zhansan"];
// NSLog(@"%@",arr);
// NSArray *str=@[@"ABC",@"BCD",@"FDFSFDS",@"ACV"];
// NSArray *nums=@[@12,@10,@60,@20,@30];
//不可变集合的数组排序
// NSArray *sortedArray = [nums sortedArrayUsingSelector:@selector(compare::)];
// NSLog(@"%@",sortedArray); }
return ;
}
2.1类排序
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Student *sunwukong=[[Student alloc] init];
sunwukong.name=@"sunwukong";
sunwukong.age= ; Student *zhubajie=[[Student alloc] init];
zhubajie.name=@"zhubajie";
zhubajie.age=; Student *shaheshang=[[Student alloc] init];
shaheshang.name=@"shaheshang";
shaheshang.age=; NSArray *qujignTeam=@[sunwukong,zhubajie,shaheshang];
//选择器排序法
/**
* 通过自定义的选择器实现按照姓名的升序排序
*
* @param mySortNameAsc: 自定义排序方法
*
* @return
*/
// NSArray *newTeam=[qujignTeam sortedArrayUsingSelector:@selector(mySortNameAsc:)];
// for (Student *team in newTeam) {
// NSLog(@"%@",team);
// }
//年龄排序
// NSArray *newAge=[qujignTeam sortedArrayUsingSelector:@selector(mySortAgeAsc:)];
// for (Student *Aage in newAge) {
// NSLog(@"%@",Aage);
// }
/**
* 描述信息排序
*/
NSSortDescriptor *sortDesc=[NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
NSArray *newTeam=[qujignTeam sortedArrayUsingDescriptors:@[sortDesc]];
for (Student *s in newTeam) {
NSLog(@"%@",s);
}
}
NSArray *newTeam1=[qujignTeam sortedArrayUsingComparator:^NSComparisonResult(Student *obj1,Student *obj2) {
return [obj1.name compare:obj2.name];
}];
for (Student *stu in newTeam1) {
NSLog(@"%@",stu);
}
return ;
}
#import <Foundation/Foundation.h> @interface Student : NSObject
@property(strong,nonatomic)NSString *name;
@property(assign,nonatomic)int age;
/**
* 按照姓名的升序排序
*
* @param obj stu对象
*
* @return 枚举 -1,0,+1
*/
-(NSComparisonResult)mySortNameAsc:(Student *) obj;
-(NSComparisonResult)mySortNameDesc:(Student *) obj;
-(NSComparisonResult)mySortAgeAsc:(Student *) obj;
-(NSComparisonResult)mySortAgeDesc:(Student *)obj;
@end
#import "Student.h" @implementation Student
- (NSString *)description
{
return [NSString stringWithFormat:@"%@,%d", _name,_age];
}
-(NSComparisonResult)mySortNameAsc:(Student *) obj{
//通过姓名属性进行比较
return [self.name compare:obj.name]; }
-(NSComparisonResult)mySortNameDesc:(Student *)obj{
return [obj.name compare:self.name]; }
/**
* 按照年龄进行升序排序
*
* @param obj stu对象
*
* @return 返回升序的结果
*/
-(NSComparisonResult)mySortAgeAsc:(Student *)obj{
if(self.age>obj.age){
return NSOrderedDescending;
}else if(self.age<obj.age){
return NSOrderedAscending;
}else{
return NSOrderedSame;
}
}
-(NSComparisonResult)mySortAgeDesc:(Student *)obj{
if(self.age>obj.age){
return NSOrderedAscending;
}else if(self.age<obj.age){
return NSOrderedDescending;
}else{
return NSOrderedSame;
}
}
@end
NSArray数字和排序的更多相关文章
- 剑指Offer面试题:32.数字在排序数组中出现的次数
一.题目:数字在排序数组中出现的次数 题目:统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4. 二.解题思路 2 ...
- 对文本行进行排序,新增-d(目录排序),只对字母数字空格排序(TCPL 练习5-16)
文本行的排序用到了命令行参数以及多级指针,在要求只对字母数字空格进行排序时,关键的问题点是兼容-f命令参数,也就是排序的同时忽略大小写.由于在之前的练习中,我将忽略大小写的比较方法重新写了一个函数tr ...
- 16.Object-C--NSArray数组的排序
今天我来总结一下NSArray数组的排序方式. NSArray数组的排序有三种方式: 1.简单排序(sortedArrayUsingSelector:) 2.利用block语法(sortedArray ...
- Python练习题 027:对10个数字进行排序
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...
- 【剑指offer】数字在排序数组中出现的次数
2013-09-02 16:28:35 找出数字在排序数组中出现的次数. 注意几点: 一开始试图用size_t类型表示数组的下标begin.end,到那时这样做在end = 0时,end - 1是si ...
- 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找
题目地址:http://ac.jobdu.com/problem.php?pid=1349 题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数 ...
- 剑指offer: 38 数字在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5} 和数字3,输出4. 思路如下 1. 预估时间复杂度,最复杂情况是,顺序扫描,统计K出现的次数,时间复杂 ...
- 【剑指offer】面试题38:数字在排序数组中出现的次数
题目: 统计一个数字在排序数组中出现的次数. 思路: 对二分查找进行改进,找到数字在数组中第一次出现和最后一次出现的位置,这样就得到它出现的次数. 以找第一次出现的位置为例:如果mid元素大于k,则在 ...
- 【C语言】数字在排序数组中出现的次数(改动)
//数字在排序数组中出现的次数(改动) //统计一个数字在排序数组中出现的次数.比如:排序数组{1,2,3,3,3.3,4,5}和数字3,因为3出现了4次,因此输出4. #include <st ...
随机推荐
- 后端码农谈前端(CSS篇)第二课:CSS的5个来源
0.浏览器默认样式 当你不为html元素设置任何样式时,显示在浏览器上的(比如:<b>元素会显示粗体.<p>元素有纵向margin.<h1>元素字号比<p&g ...
- Java 集合系列15之 Set架构
前面,我们已经系统的对List和Map进行了学习.接下来,我们开始可以学习Set.相信经过Map的了解之后,学习Set会容易很多.毕竟,Set的实现类都是基于Map来实现的(HashSet是通过Has ...
- [Python] Symbol Review
From:http://learnpythonthehardway.org/book/ex37.html 1. with X as Y: pass 1.1 yield 2. exec 2.1 name ...
- 软件工程---阅读《构建之法》P384~391
-阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...
- eclipse svn插件安装方法
eclipse svn插件安装方法 使用dropins安装插件 从Eclipse3.5开始,安装目录下就多了一个dropins目录.只要将插件解压后拖到该目录即可安装插件.比如安装svn插件subcl ...
- 常用的android弹出对话框
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...
- C#字符串的恒定性
string str1="aa"; string str2="aa"; str1,str2,变量所指向的堆空间的地址是一样的.栈空间的内容是不一样的. //ne ...
- C++隐藏规则
在面向对象的开发过程中,经常出现类的继承,这里面出现的成员函数的重载(overload).覆盖(override)与隐藏(hidden)很容易混淆. 首先澄清这3个概念: 重载 相同的范围(在同一个类 ...
- .NET初学者推荐课程 asp.net错误代码大全
错误 CS0001 编译器内部错误错误 CS0003 内存溢出错误 CS0004 提升为错误的警告错误 CS0005 编译器选项后应跟正确的参数错误 CS0006 找不到动态链接的元数据文件错误 CS ...
- ActiveReports 报表应用教程 (1)---Hello ActiveReports
在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类 ...