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 ...
随机推荐
- grunt压缩多个js文件和css文件
压缩前的工程目录: 1.安装js,css需要的插件 使用npm安装:npm install grunt-contrib-uglify --save-dev -------->安装js压缩插件 ...
- Java Garbage Collection Basics--转载
原文地址:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html Overview Purpose ...
- 《微信小程序七日谈》- 第二天:你可能要抛弃原来的响应式开发思维
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 上篇文 ...
- HTML5 新特性总结
1.使用autocomplete 自动完成必须给input 加上name. 2.SVG图形代码 复制https://developer.mozilla.org/zh-CN/docs/Web/SVG/E ...
- [SQL] SQL SERVER基础语法
Struct Query Language 1.3NF a.原子性 b.不能数据冗余 c.引用其他表的主键 2.约束 a.非空约束 b.主键约束 c.唯一约束 d.默认约束 e.检查约束 f.外键约束 ...
- 【jQuery基础学习】12 jQuery学习感想
学习完<锋利的jQuery>,用时13天. 这期间,私底下又用了一点时间去W3C上把HTML和CSS重新过了一遍. 总的来说,收获还是蛮多的. 其实在本书里面真正重要的也就前几章,后面的都 ...
- csharp: Importing or Exporting Data from Worksheets using aspose cell
/// <summary> /// 涂聚文 /// 20150728 /// EXCEL win7 32位,64位OK /// </summary> public class ...
- mysql select语句解析
select语句用于从一个或多个数据表选出特定行.特定列的交集 最简单的select语句的语法格式如下: select column1,column2 ........ (列) from 数 ...
- 做java工作整整1年了,看到了大牛的奋斗历程,我感觉自己又有目标了
2014年6月,刚刚踏上社会那会儿,我记得我第一次面试啥都不知道,穿的也不修边幅去应聘一家4s销售,面试官看到我,我明细感觉到了对方厌恶的神色,这是我上社会的第一课,找工作不管是什么工作,衣着得体,是 ...
- java jdk environment variables
1. create system variable 2. edit the system path note: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 3. cre ...