Foundation框架--数组中内容的排序种类 实例

Person类中

@property(nonatomic,strong)
NSString * name ;

@property(nonatomic ,strong)NSString *year;

@property(nonatomic,assign)
int age;

-(id)initWithName:(NSString *)name andYear:(NSString *)year andAge:(int)age;

Person.m

- (NSString *)description

{

return [NSString
stringWithFormat:@"name=%@,year=%@,age=%d",
_name,_year,_age];

}

//初始化

-(id)initWithName:(NSString *)name andYear:(NSString *)year andAge:(int)age

{

if (self =[super
init])

{

_name=name;

_year=year;

_age=age;

}

return
self;

}

主函数中作如下操作:

//1.数组按照存入数据的顺序存储的。

NSArray *array=@[@"b",@"d",@"1",@"a",@"z",@"2"];

NSLog(@"排序前 array %@",array);

array= [array
sortedArrayUsingSelector:@selector(compare:)];

NSLog(@"排序后 array %@",array);

//2.使用block方式排序。

NSArray *array1=@[@"z",@"4",@"3",@"x"];

NSLog(@"array1
排序前%@",array1);

array1 =[array1
sortedArrayUsingComparator:^NSComparisonResult(id obj1,
id obj2) {

//            NSComparisonResult rersult=[obj1 compare:obj2];

//            return rersult;

return [obj1 compare:obj2];

}];

NSLog(@"array1
排序后 %@",array1);

//3.自定对象的排序,根据属性排序

Person *p=[[Person
alloc]initWithName:@"jack "andYear:@"1990"
andAge:20];

Person *p1=[[Person
alloc]initWithName:@"tom"
andYear:@"2000"andAge:21];

Person *p2=[[Person
alloc]initWithName:@"hoo "andYear:@"1908"
andAge:18];

Person *p3=[[Person
alloc]initWithName:@"hoo1 "andYear:@"1907"
andAge:18];

NSArray *array2=@[p,p1,p2,p3];

NSLog(@"排序前 array2 %@",array2);

NSSortDescriptor *d1=[NSSortDescriptor
sortDescriptorWithKey:@"age"
ascending:YES];

NSSortDescriptor *d2=[NSSortDescriptor
sortDescriptorWithKey:@"year"
ascending:YES];

NSArray *descripts=@[d1,d2];

array2 =[array2
sortedArrayUsingDescriptors:descripts];

NSLog(@"排序后 array2%@",array2);

//4.自定义对象的block方法排序

NSArray *array4=@[p,p1,p2,p3];

NSLog(@"array4
排序前%@",array4);

array4=[array4
sortedArrayUsingComparator:^NSComparisonResult(id obj1,
id obj2) {

Person *p1=obj1;

Person *p2=obj2;

return [p1.year
compare:p2.year];

}];

NSLog(@"array4
排序后 %@",array4);

时间: 2024-08-29 11:40:24

Foundation框架--数组中内容的排序种类 实例的相关文章

C实现数组中元素的排序

使用C实现数组中元素的排序,使得数组中的元素从小到大排列.只不过在这个过程中出了一点小问题,在C中进行数字交换的时候,必须要使用指针的,不能使用引用.在后面的文章中,我要学习一个在C中的引用和指针的区别.下面看一下我的代码吧. #include <stdio.h> void swap(int *a,int *b); void rest(int lels[],int count); /** * 该实例用于实现对用户输入的数组进行排序 * 要求的数组中的元素从小到大来咧 * * @brief ma

我是黑马-----Foundation框架数组

NSArray是Foundation框架的一种集合类 创建一个新的NSArray NSArray *array = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil]; NSArray类是不可变的,创建以后就不能改变其内容. 顺次访问数组中的元素: 1 NSArray *array = [NSArray arrayWithObjects:@"foo",@"bar&q

数组中元素的排序(常用的冒泡排序、选择排序、快速排序)

1.冒泡排序(以从小到大为例) [分析]:冒泡排序的思想就是,两两进行比较,第一个元素和第二个元素进行比较,如果第一个元素比第二个元素大,则这两个元素交换位置,然后第二个元素和第三个元素进行比较,如果第二个元素比第三个元素大,交换位置,依次类推,知道到最后一个元素.在比较的时候,每进行一轮比较,就可以找到当前这一轮的最大值, 我们可以将每一轮找到的最大值放到最后,知道最终剩下两个值,比较完之后,就可以将当前数列的数据按照从小到大的顺序排列好. 以:a=[  2 ,  6  ,8  ,9  ,1 

Foundation框架—— 数组 (NSArray NSMutableArray )

基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4.OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. NSArray NSArray *arr=[NSArray array];//初始化一个空数组 NSArray *arr1=[NSArrayarrayWithObject:@"123"];//初始化一个元素的数组

一月十日练习习题,1数组数据存入字典并输出2降序 和倒叙 输出数组中内容3对字符串当中信息进行查找是否存在4 把数组当中信息尽心中文排序

// //  main.m //  Pratise_Jan10_1 // //  Created by wangyang on 16/1/10. //  Copyright (c) 2016年 Wangyang. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 请将如下数据存储成字典,并将字典

数组中 的数字排序

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *arr=[[NSArray alloc]initWithObjects:@12,@9,@34,@56,@11, nil]; NSArray *newarr=[arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj

数组中的选择排序

选择排序的原理就是每次用一个索引值去和剩下的索引值作比较和交换顺序 代码:这里只写上核心代码 //选择排序的方法 public static void SelectSort(int ] arr){ for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<ar.lenngth;j++){ if(arr[i]<arr[j]){ swap(arr,i,j);//交换方法见上一编文章 } } } }

按数组中的值排序

function compareClass($a, $b)    {        return strcmp($a["displayorder"], $b["displayorder"]);    }    usort($classarr, "compareClass");    print_r($classarr);die;

iOS是开发之 对数组中的元素排序后输出

NSArray *arr = @[@1,@9,@4,@7,@0,@-5,@3]; arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { //        return [obj1 compare:obj2];    // 按升序返回 return [obj2 compare:obj1];     // 安降序返回 }]; NSLog(@"%@",arr);