ios-遍历和排序
- //
- // main.m
- // OC-遍历和排序-homework
- //
- // Created by dllo on 16/2/25.
- // Copyright © 2016年 dllo. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "Person.h"
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- // 要求 :
- // 1、创建1个包含5个字符串元素的数组; 2、 for循环倒序输出所有元素; 3、 for...in完成所有字符串元素的拼接( 成 个
- // 新的字符串),并输出拼接好的字符串。
- NSArray *strArray = @[@"nanjing", @"shanghai", @"beijing", @"shangxi", @"chongqing"];
- for (int i = 0; i < strArray.count; i++) {
- NSLog(@"%@", [strArray objectAtIndex:strArray.count - 1 - i]);
- }
- NSMutableString *str = [NSMutableString stringWithCapacity:20];
- for (NSString *string in strArray) {
- [str appendString:string];
- }
- NSLog(@"%@", str);
- // 要求:
- // 1、创建1个包含5个person对象的数组(姓名 英 ); 2、 for循环找到年龄最 的Person对象; 3、 for...in遍历数组,把 于某个年龄的Person对象的姓名后 拼接上字符串“-brother”。
- Person *per1 = [[Person alloc]initWithName:@"ma" sex:@"male" age:26];
- Person *per2 = [[Person alloc]initWithName:@"liutaifeng" sex:@"male" age:22];
- Person *per3 = [[Person alloc]initWithName:@"zhengfeng " sex:@"male" age:23];
- Person *per4 = [[Person alloc]initWithName:@"ma" sex:@"male" age:27];
- Person *per5 = [[Person alloc]initWithName:@"ma" sex:@"male" age:29];
- NSArray *array = [NSArray arrayWithObjects:per1, per2, per3, per4, per5, nil];
- Person *per = [[Person alloc]initWithName:@"majian" sex:@"male" age:29];
- for (int i = 0; i < array.count; i++) {
- if ([[array objectAtIndex:i] age] < [per age]) {
- per = [array objectAtIndex:i];
- }
- }
- NSLog(@"%@", [per name]);
- NSArray *newArray = [array sortedArrayUsingSelector:@selector(compareWithName:)];
- NSLog(@"%@", newArray);
- NSArray *newArray2 = [array sortedArrayUsingSelector:@selector(compareWithSex:)];
- NSLog(@"%@", newArray2);
- NSArray *newArray3 = [array sortedArrayUsingSelector:@selector(compareWithAge:)];
- NSLog(@"%@", newArray3);
- NSSortDescriptor *sortOfName = [[NSSortDescriptor alloc]initWithKey:@"name" ascending:YES];
- NSSortDescriptor *sortOfAge = [[NSSortDescriptor alloc]initWithKey:@"age" ascending:YES];
- NSArray *array1 = [array sortedArrayUsingDescriptors:@[sortOfName, sortOfAge]];
- NSLog(@"%@", array1);
- }
- return 0;
- }
Person.m文件:
- //
- // Person.m
- // OC-遍历和排序-homework
- //
- // Created by dllo on 16/2/25.
- // Copyright © 2016年 dllo. All rights reserved.
- //
- #import "Person.h"
- @implementation Person
- - (instancetype)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age{
- self = [super init];
- if (self) {
- _name= name;
- _age = age;
- _sex = sex;
- }
- return self;
- }
- - (NSComparisonResult)compareWithName:(Person *)anOtherPerson{
- return [self.name compare:anOtherPerson.name];
- }
- - (NSComparisonResult)compareWithAge:(Person *)anOtherPerson{
- if (self.age > anOtherPerson.age) {
- return NSOrderedDescending;
- }else if(self.age < anOtherPerson.age){
- return NSOrderedAscending;
- }else{
- return NSOrderedSame;
- }
- }
- - (NSComparisonResult)compareWithSex:(Person *)anOtherPerson{
- return [self.sex compare:anOtherPerson.sex];
- }
- - (NSString *)description
- {
- return [NSString stringWithFormat:@"name:%@, sex:%@, age:%ld", _name, _sex, _age];
- }
- @end
ios-遍历和排序的更多相关文章
- c# Dictionary的遍历和排序
c# Dictionary的遍历和排序 c#遍历的两种方式 for和foreach for: 需要指定首位数据.末尾数据.数据长度: for遍历语句中可以改变数据的值: 遍历规则可以自定义,灵活性较高 ...
- Object-c学习之路八(NSArray(数组)遍历和排序)
今天学习了NSArray的遍历和排序,现在在这里做一下总结: 遍历现在实现了四中方法: 排序大概有三中方法:(代码中都有注释) 关于对象的排序还是以Student和Book为例 每个Student持有 ...
- jdk8中关于操作集合的一些新特性,遍历和排序操作
jdk8增加了不少新的东西,在集合操作这块,就有如 lamda表达式,stream,sort,optional等新的类,主要涉及遍历和排序等方面,新特性提升了不少性能,我们开发就是要拥抱新事物,守着老 ...
- PCB 合拼遍历(全排序+旋转90度) 基本遍历方法
分享一下PCB合拼的组合的遍历方法,在分享之前先纠正一下 PCB拼板之多款矩形排样算法实现--学习 时间复杂度计算错误 一.PCB 合拼(全排序+旋转90度)的时间复杂度是多少? 二.合拼遍历(全 ...
- java 集合之Arraylist的遍历及排序
最近培训是先学习java基础 从最基本的开始学起 因为今天刚刚开博客 要把上周的一些重点内容归纳一下 1.Arraylist常用遍历以及排序 import java.util.ArrayList; i ...
- c# Dictionary的遍历和排序(转)
c#遍历的两种方式 for和foreach for: 需要指定首位数据.末尾数据.数据长度: for遍历语句中可以改变数据的值: 遍历规则可以自定义,灵活性较高 foreach: 需要实现ienume ...
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
1.数组基础 1.什么是数组: 同一类型数据的集合,就是一个容器. 2.数组的好处: 可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式: (一 ...
- [转载]C# HashTable 遍历与排序
private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...
- C#中hashtable的赋值、取值、遍历、排序操作
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
- HashMap的遍历和排序
1.HashMap的遍历 package com.sheepmu; import java.util.HashMap; import java.util.Iterator; import java.u ...
随机推荐
- EXCEL IF 函数 模糊查询
A列都是产品名,比如衬衫,长袖衬衫,短袖衬衫,短裙,长裙 搜索A列的产品名,凡是含有“衬衫”的一律在B列对应行输出“衬衫”,凡是含有“裙”字的一律输出“裙子”在B列对应行,请教一下怎么写函数,本来用I ...
- mysql启动不成功显示The server quit without updating PID file的解决方法
上午在编译安装mysql的时候 就出现标题中的错误,经实践在第二步操作后启动成功,参考链接 链接http://linuxadministrator.pro/blog/?p=225 You may fa ...
- Jenkins插件hyper slaves源码分析
1.public class HyperSlaves extends Plugin implements Describable<HyperSlaves> (1).init():初始化co ...
- Google play billing(Google play 内支付) 上篇
写在前面: 最近Google貌似又被全面封杀了,幸好在此之前,把Google play billing弄完了,现在写篇 博客来做下记录.这篇博客一是自己做个记录,二是帮助其他有需要的人.因为现在基本登 ...
- Junit使用GroboUtils进行多线程测试
写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的.JVM都终止了,在测试线程启动的其他线程自 ...
- QTP基础学习(二)启动与设置
1.启动QTP选择要求的Add-in 默认带有3个Add-in,之后可以安装其他的Add-in,如.net的Add-in 2.设置QTP的选项 点击Tools-Options,弹出如下框: 3.建立记 ...
- 使用appscan实现多站扫描简单自动化
因为appscan在新建扫描任务的时候只能输入一个target,并且没有awvs/nessus那样提供web接口,导致我以前一直以为appscan不能像awvs那样批量建立任务自动扫描. 不过,今天要 ...
- iOS中NSLog的输出格式
%@ 对象%d %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针 ; NSLog(@"%p",&tem); & ...
- [转]hadoop hdfs常用命令
FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令 hadoop常用命令: hadoop fs 查看H ...
- 将请求挂载至WEB页面
有两种方式 1.使用标准的方式,在某个菜单下面直接加入标准功能 提交请求(FEM_FWK_SUBMIT_REQ),然后即可在页面上提交请求. 2.将指定请求定义成功能,在WEB页面使用功能直接提交指 ...