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 ...
随机推荐
- 快乐的JS正则表达式(三)
?的用途. 小任务:匹配一段网址如var str = "http://www.123.com/";注意http也可以是https var str = "http://i. ...
- ionic 添加地图定位功能
由于项目需求,需要一个定位功能,通过google或百度,搜到一个cordova-plugin-geolocation的插件,在ios上可以用,但是在android就呵呵了,原因就不说了,大家都知道.所 ...
- [Unity3D] 浅尝Unity3D
01. Move and Rotate 标准全局坐标系 Keyboard using UnityEngine; using System.Collections; public class NewBe ...
- Direct2D开发:绘制网格
转载请注明出处:http://www.cnblogs.com/Ray1024 一.引言 最近在使用Direct2D进行绘制工作中,需要实现使用Direct2D绘制网格的功能.在网上查了很多资料,终于实 ...
- 让JS写的更接近OOP
下面这段代码就是利用JS原型对象,来实现的类的继承DEMO $ 为jquery对象 ////公共方法 // $.oop.newClass=function newClass(obj) { // fun ...
- 阅读Nosql代码有感
这一年总得来说,读书的时间不多.一是因为时间啥关系,这一年一直在跟着项目走,或者被项目牵着走,几乎所有的时间和精力全部被拴在几个项目上:不过所幸今年创业失败,又回去上班了,时间相对空余了一些. 双十一 ...
- sqlite3存储格式
本篇介绍sqlite3数据库文件的存储格式.通过阅读源读源代码可以知道sqlite的设计思想.一个sqlite数据库文件对应着一个数据库.sqlite将数据库文件划分大小一致的存储(以区分内存)页面, ...
- DateTime to long
private static DateTime BaseTime = new DateTime(1970, 1, 1); 将unixtime转换为.NET的DateTime public static ...
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给大家提供一种方式,直接使用我们的程序来安装/卸载服务,并且可以 ...
- 重新想象 Windows 8 Store Apps (41) - 打印
[源码下载] 重新想象 Windows 8 Store Apps (41) - 打印 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 打印 示例1.需要打印的文档Pr ...