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 ...
随机推荐
- 笔记——Visual Studio 程序员箴言
记录了一些感觉比较用得到的tips用于随时查看.要想看完整的的内容还是阅读<Visual Studio 程序员箴言>,不过有些内容我在新版本的VS里没能实现,或者有替代方案了. 避免意外复 ...
- hdu 2152
题目大意:本题是中文题.读者可以直接到OJ上去阅读.提议并不难理解 代码如下: /* * 2152_1.cpp * * Created on: 2013年8月9日 * Author: Administ ...
- 玩转PowerShell第一节——【后台任务处理】-技术&分享
概述 相信大家对后台任务处理不陌生,比如.Net的后台线程处理,Java的线程处理等等. 而当我们用PowerShell这个强大的工具时怎么样开启后台任务呢,以及怎样处理这些任务呢,本篇将会告诉你Po ...
- 扁平化设计的最新趋势 – 长阴影(Long Shadow)
随着互联网的发展,网页设计变得越来越复杂,如今设计的外观和感觉实现网站功能说使用的开发技术一样重要.互联网的功能远远不只是基本的信息共享,现在人们对网站的期望是远远大于几年前的. 如今,HTML5 & ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- 开放产品开发(OPD):Archi 汉化工具下载
本文更新版本已挪至 http://www.zhoujingen.cn/blog/3378.html ------------------------------ 在OPD中,我们使用了ArchiMa ...
- 【转】Python中的GIL、多进程和多线程
转自:http://lesliezhu.github.io/public/2015-04-20-python-multi-process-thread.html 目录 1. GIL(Global In ...
- mysql主从复制显示正常,数据没同步现象。
当时在一个服务器上开启了多实例,主从复制结构图如下: 当时在192.168.10.3的服务器上用show slave status;显示的是正常的复制的,两个线程都为yes,并且读与写的pos也一直在 ...
- AEAI HR V1.5.1升级说明,开源人力资源管理系统
本次发版的AEAI HR_v1.5.1版本为AEAI HR_v1.5.0版本的升级版本,该产品现已开源并上传至开源社区http://www.oschina.net/p/aeaihr. 1 升级说明 A ...
- 演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)
概述 Xamarin这个使用mono和.net core的跨平台开发框架这几年在不断发展.被微软收购后的Xamarin为个人开发者提供了免费版的Xamarin for Visual Studio,吸引 ...