1. //
  2. // main.m
  3. // OC-遍历和排序-homework
  4. //
  5. // Created by dllo on 16/2/25.
  6. // Copyright © 2016年 dllo. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10. #import "Person.h"
  11. int main(int argc, const char * argv[]) {
  12. @autoreleasepool {
  13. // 要求 :
  14. // 1、创建1个包含5个字符串元素的数组; 2、 for循环倒序输出所有元素; 3、 for...in完成所有字符串元素的拼接( 成 个
  15. // 新的字符串),并输出拼接好的字符串。
  16. NSArray *strArray = @[@"nanjing", @"shanghai", @"beijing", @"shangxi", @"chongqing"];
  17. for (int i = 0; i < strArray.count; i++) {
  18. NSLog(@"%@", [strArray objectAtIndex:strArray.count - 1 - i]);
  19. }
  20. NSMutableString *str = [NSMutableString stringWithCapacity:20];
  21. for (NSString *string in strArray) {
  22. [str appendString:string];
  23. }
  24. NSLog(@"%@", str);
  25.  
  26. // 要求:
  27. // 1、创建1个包含5个person对象的数组(姓名 英 ); 2、 for循环找到年龄最 的Person对象; 3、 for...in遍历数组,把 于某个年龄的Person对象的姓名后 拼接上字符串“-brother”。
  28.  
  29. Person *per1 = [[Person alloc]initWithName:@"ma" sex:@"male" age:26];
  30. Person *per2 = [[Person alloc]initWithName:@"liutaifeng" sex:@"male" age:22];
  31. Person *per3 = [[Person alloc]initWithName:@"zhengfeng " sex:@"male" age:23];
  32. Person *per4 = [[Person alloc]initWithName:@"ma" sex:@"male" age:27];
  33. Person *per5 = [[Person alloc]initWithName:@"ma" sex:@"male" age:29];
  34. NSArray *array = [NSArray arrayWithObjects:per1, per2, per3, per4, per5, nil];
  35. Person *per = [[Person alloc]initWithName:@"majian" sex:@"male" age:29];
  36. for (int i = 0; i < array.count; i++) {
  37. if ([[array objectAtIndex:i] age] < [per age]) {
  38. per = [array objectAtIndex:i];
  39. }
  40. }
  41. NSLog(@"%@", [per name]);
  42.  
  43. NSArray *newArray = [array sortedArrayUsingSelector:@selector(compareWithName:)];
  44. NSLog(@"%@", newArray);
  45.  
  46. NSArray *newArray2 = [array sortedArrayUsingSelector:@selector(compareWithSex:)];
  47. NSLog(@"%@", newArray2);
  48.  
  49. NSArray *newArray3 = [array sortedArrayUsingSelector:@selector(compareWithAge:)];
  50. NSLog(@"%@", newArray3);
  51.  
  52. NSSortDescriptor *sortOfName = [[NSSortDescriptor alloc]initWithKey:@"name" ascending:YES];
  53.  
  54. NSSortDescriptor *sortOfAge = [[NSSortDescriptor alloc]initWithKey:@"age" ascending:YES];
  55.  
  56. NSArray *array1 = [array sortedArrayUsingDescriptors:@[sortOfName, sortOfAge]];
  57. NSLog(@"%@", array1);
  58.  
  59. }
  60. return 0;
  61. }

Person.m文件:

  1. //
  2. // Person.m
  3. // OC-遍历和排序-homework
  4. //
  5. // Created by dllo on 16/2/25.
  6. // Copyright © 2016年 dllo. All rights reserved.
  7. //
  8.  
  9. #import "Person.h"
  10.  
  11. @implementation Person
  12.  
  13. - (instancetype)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age{
  14. self = [super init];
  15. if (self) {
  16. _name= name;
  17. _age = age;
  18. _sex = sex;
  19. }
  20. return self;
  21.  
  22. }
  23. - (NSComparisonResult)compareWithName:(Person *)anOtherPerson{
  24.  
  25. return [self.name compare:anOtherPerson.name];
  26.  
  27. }
  28.  
  29. - (NSComparisonResult)compareWithAge:(Person *)anOtherPerson{
  30. if (self.age > anOtherPerson.age) {
  31. return NSOrderedDescending;
  32. }else if(self.age < anOtherPerson.age){
  33. return NSOrderedAscending;
  34.  
  35. }else{
  36. return NSOrderedSame;
  37. }
  38.  
  39. }
  40. - (NSComparisonResult)compareWithSex:(Person *)anOtherPerson{
  41. return [self.sex compare:anOtherPerson.sex];
  42. }
  43. - (NSString *)description
  44. {
  45. return [NSString stringWithFormat:@"name:%@, sex:%@, age:%ld", _name, _sex, _age];
  46. }
  47. @end

ios-遍历和排序的更多相关文章

  1. c# Dictionary的遍历和排序

    c# Dictionary的遍历和排序 c#遍历的两种方式 for和foreach for: 需要指定首位数据.末尾数据.数据长度: for遍历语句中可以改变数据的值: 遍历规则可以自定义,灵活性较高 ...

  2. Object-c学习之路八(NSArray(数组)遍历和排序)

    今天学习了NSArray的遍历和排序,现在在这里做一下总结: 遍历现在实现了四中方法: 排序大概有三中方法:(代码中都有注释) 关于对象的排序还是以Student和Book为例 每个Student持有 ...

  3. jdk8中关于操作集合的一些新特性,遍历和排序操作

    jdk8增加了不少新的东西,在集合操作这块,就有如 lamda表达式,stream,sort,optional等新的类,主要涉及遍历和排序等方面,新特性提升了不少性能,我们开发就是要拥抱新事物,守着老 ...

  4. PCB 合拼遍历(全排序+旋转90度) 基本遍历方法

    分享一下PCB合拼的组合的遍历方法,在分享之前先纠正一下 PCB拼板之多款矩形排样算法实现--学习  时间复杂度计算错误  一.PCB 合拼(全排序+旋转90度)的时间复杂度是多少? 二.合拼遍历(全 ...

  5. java 集合之Arraylist的遍历及排序

    最近培训是先学习java基础 从最基本的开始学起 因为今天刚刚开博客 要把上周的一些重点内容归纳一下 1.Arraylist常用遍历以及排序 import java.util.ArrayList; i ...

  6. c# Dictionary的遍历和排序(转)

    c#遍历的两种方式 for和foreach for: 需要指定首位数据.末尾数据.数据长度: for遍历语句中可以改变数据的值: 遍历规则可以自定义,灵活性较高 foreach: 需要实现ienume ...

  7. [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组

    1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一 ...

  8. [转载]C# HashTable 遍历与排序

    private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...

  9. C#中hashtable的赋值、取值、遍历、排序操作

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...

  10. HashMap的遍历和排序

    1.HashMap的遍历 package com.sheepmu; import java.util.HashMap; import java.util.Iterator; import java.u ...

随机推荐

  1. EXCEL IF 函数 模糊查询

    A列都是产品名,比如衬衫,长袖衬衫,短袖衬衫,短裙,长裙 搜索A列的产品名,凡是含有“衬衫”的一律在B列对应行输出“衬衫”,凡是含有“裙”字的一律输出“裙子”在B列对应行,请教一下怎么写函数,本来用I ...

  2. mysql启动不成功显示The server quit without updating PID file的解决方法

    上午在编译安装mysql的时候 就出现标题中的错误,经实践在第二步操作后启动成功,参考链接 链接http://linuxadministrator.pro/blog/?p=225 You may fa ...

  3. Jenkins插件hyper slaves源码分析

    1.public class HyperSlaves extends Plugin implements Describable<HyperSlaves> (1).init():初始化co ...

  4. Google play billing(Google play 内支付) 上篇

    写在前面: 最近Google貌似又被全面封杀了,幸好在此之前,把Google play billing弄完了,现在写篇 博客来做下记录.这篇博客一是自己做个记录,二是帮助其他有需要的人.因为现在基本登 ...

  5. Junit使用GroboUtils进行多线程测试

    写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的.JVM都终止了,在测试线程启动的其他线程自 ...

  6. QTP基础学习(二)启动与设置

    1.启动QTP选择要求的Add-in 默认带有3个Add-in,之后可以安装其他的Add-in,如.net的Add-in 2.设置QTP的选项 点击Tools-Options,弹出如下框: 3.建立记 ...

  7. 使用appscan实现多站扫描简单自动化

    因为appscan在新建扫描任务的时候只能输入一个target,并且没有awvs/nessus那样提供web接口,导致我以前一直以为appscan不能像awvs那样批量建立任务自动扫描. 不过,今天要 ...

  8. iOS中NSLog的输出格式

    %@ 对象%d %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针 ; NSLog(@"%p",&tem); & ...

  9. [转]hadoop hdfs常用命令

    FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令   hadoop常用命令:  hadoop fs  查看H ...

  10. 将请求挂载至WEB页面

    有两种方式 1.使用标准的方式,在某个菜单下面直接加入标准功能  提交请求(FEM_FWK_SUBMIT_REQ),然后即可在页面上提交请求. 2.将指定请求定义成功能,在WEB页面使用功能直接提交指 ...