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数字和排序的更多相关文章

  1. 剑指Offer面试题:32.数字在排序数组中出现的次数

    一.题目:数字在排序数组中出现的次数 题目:统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4. 二.解题思路 2 ...

  2. 对文本行进行排序,新增-d(目录排序),只对字母数字空格排序(TCPL 练习5-16)

    文本行的排序用到了命令行参数以及多级指针,在要求只对字母数字空格进行排序时,关键的问题点是兼容-f命令参数,也就是排序的同时忽略大小写.由于在之前的练习中,我将忽略大小写的比较方法重新写了一个函数tr ...

  3. 16.Object-C--NSArray数组的排序

    今天我来总结一下NSArray数组的排序方式. NSArray数组的排序有三种方式: 1.简单排序(sortedArrayUsingSelector:) 2.利用block语法(sortedArray ...

  4. Python练习题 027:对10个数字进行排序

    [Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...

  5. 【剑指offer】数字在排序数组中出现的次数

    2013-09-02 16:28:35 找出数字在排序数组中出现的次数. 注意几点: 一开始试图用size_t类型表示数组的下标begin.end,到那时这样做在end = 0时,end - 1是si ...

  6. 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找

    题目地址:http://ac.jobdu.com/problem.php?pid=1349 题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数 ...

  7. 剑指offer: 38 数字在排序数组中出现的次数

    题目描述 统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5} 和数字3,输出4. 思路如下 1. 预估时间复杂度,最复杂情况是,顺序扫描,统计K出现的次数,时间复杂 ...

  8. 【剑指offer】面试题38:数字在排序数组中出现的次数

    题目: 统计一个数字在排序数组中出现的次数. 思路: 对二分查找进行改进,找到数字在数组中第一次出现和最后一次出现的位置,这样就得到它出现的次数. 以找第一次出现的位置为例:如果mid元素大于k,则在 ...

  9. 【C语言】数字在排序数组中出现的次数(改动)

    //数字在排序数组中出现的次数(改动) //统计一个数字在排序数组中出现的次数.比如:排序数组{1,2,3,3,3.3,4,5}和数字3,因为3出现了4次,因此输出4. #include <st ...

随机推荐

  1. 后端码农谈前端(CSS篇)第二课:CSS的5个来源

    0.浏览器默认样式 当你不为html元素设置任何样式时,显示在浏览器上的(比如:<b>元素会显示粗体.<p>元素有纵向margin.<h1>元素字号比<p&g ...

  2. Java 集合系列15之 Set架构

    前面,我们已经系统的对List和Map进行了学习.接下来,我们开始可以学习Set.相信经过Map的了解之后,学习Set会容易很多.毕竟,Set的实现类都是基于Map来实现的(HashSet是通过Has ...

  3. [Python] Symbol Review

    From:http://learnpythonthehardway.org/book/ex37.html 1. with X as Y: pass 1.1 yield 2. exec 2.1 name ...

  4. 软件工程---阅读《构建之法》P384~391

    -阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...

  5. eclipse svn插件安装方法

    eclipse svn插件安装方法 使用dropins安装插件 从Eclipse3.5开始,安装目录下就多了一个dropins目录.只要将插件解压后拖到该目录即可安装插件.比如安装svn插件subcl ...

  6. 常用的android弹出对话框

    我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...

  7. C#字符串的恒定性

    string str1="aa"; string str2="aa"; str1,str2,变量所指向的堆空间的地址是一样的.栈空间的内容是不一样的. //ne ...

  8. C++隐藏规则

    在面向对象的开发过程中,经常出现类的继承,这里面出现的成员函数的重载(overload).覆盖(override)与隐藏(hidden)很容易混淆. 首先澄清这3个概念: 重载 相同的范围(在同一个类 ...

  9. .NET初学者推荐课程 asp.net错误代码大全

    错误 CS0001 编译器内部错误错误 CS0003 内存溢出错误 CS0004 提升为错误的警告错误 CS0005 编译器选项后应跟正确的参数错误 CS0006 找不到动态链接的元数据文件错误 CS ...

  10. ActiveReports 报表应用教程 (1)---Hello ActiveReports

    在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类 ...