笔记-NSArray 逆序reverseObjectEnumerator 及 NSEnumerator 遍历

//1.原始数组
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",nil];
//2.倒序的数组
NSArray* reversedArray = [[array reverseObjectEnumerator] allObjects];

输出 reversedArray 为 3 2 1。

//2、枚举器法
        NSLog(@"------- 枚举器法---------");
                                        //ObjectEnumerator        正序
                                        //reverseObjectEnumerator 逆序
        NSEnumerator *enumerator = [array reverseObjectEnumerator];
        id obj = nil;  //不确定数组里面具体对象的类型,所以定义成id 类型指针
        while (obj = [enumerator nextObject]) { //通过枚举器,取数组里面的每一个元素
            NSLog(@"%@", obj);                  //将元素赋给 obj, 直到数组结束
                                                //取到的结果为nil,退出while
        }
时间: 2024-10-05 09:01:00

笔记-NSArray 逆序reverseObjectEnumerator 及 NSEnumerator 遍历的相关文章

数组操作之遍历,排序,逆序

数组遍历: 索引遍历 枚举遍历: NSEnumerator* enumerator = [array objectEnumerator]; id e = nil; while (e = [enumerator nextObject]) { NSLog(@"e = %@", e); } 代码块遍历: // 示例1:枚举遍历 [array enumerateObjectsUsingBlock:^ (id obj, NSUInteger idx, BOOLBOOL *stop){ NSLog

C语言实现单链表的遍历,逆序,插入,删除

单链表的遍历,逆序,插入,删除 #include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memset(a, 0, b)//windows平台下无bzero函数. 增加宏拓展移植性 struct node { int data; //有效数据 struct node *pNext;//指向下一个节点的指针 }; struct node * make_node(int data

设计鲁棒性的方法:输入一个链表的头结点,逆序遍历打印该链表出来

之前有过整理链表等的概念和基本算法.比较重要的是插入,删除,遍历,建表(尾插法,头插法) 回忆链表尾部插入结点:  1 #include <iostream> 2 using namespace std; 3  4 typedef struct Node{ 5     int data;//数据域 6     Node *next;//指针域 7 } Node, *List; 8  9 //在单链表的末位添加一个结点10 void addNode(List *head, int value)1

[算法]链表的逆序遍历节点

有一个链表,知道链表头,怎么逆序打印出链表每个节点的值. 我们知道,当知道了链表头的时候,很容易顺序访问所有节点的值,但是如何逆序访问所有节点呢? 访问一棵二叉树,通常可以深度优先和广度优先访问每个节点,深度优先又分为先序,中序和后续遍历,后续遍历就是先访问树的右子树,再访问左子树,最后访问父节点,如果我们把一个链表看成是一颗单叉树,利用树的后续遍历就达到了逆序访问链表的每个节点,利用递归,实现代码如下: struct node { int val; node* next; }; void tr

POJ 2828——Buy Tickets(树状数组,线段树——逆序遍历)

Buy Tickets Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 13496   Accepted: 6726 Description Railway tickets were difficult to buy around the Lunar New Year in China, so we must get up early and join a long queue- The Lunar New Year wa

【C#懒蛋编程——5分钟经验分享】01逆序遍历删除,防止迭代器失效

因为篇幅很短,所以尝试全文字写法.几分钟看完的文字也没必要用十几分钟写完是吧. foreach遍历List操作很方便,这节省了部分[]取数据和下标计算的代码.写起来很简洁.但是如果是遍历删除的话,你会遇到很经典的迭代器失效问题. 解决这个问题的常见思路是,对容器A中需要删除的元素,放入一个临时容器B.然后再次遍历这个容器B,将元素取出并在A中删除.这么写缺点很多,两次循环,而且加入临时容器,把代码搞得很难看. 其实遍历删除的同时,防止(或曰避免遇到)迭代器失效的最简单方法是逆序遍历同时删除.这种

lua学习笔记15:table数组逆序

数组的逆序,只能用于数组,不能用于哈希表 function reverseTable(tab) local tmp = {} for i = 1, #tab do local key = #tab tmp[i] = table.remove(tab) end return tmp end // 示例 local t = {"one", "two", "three"} for k, v in pairs(t) do print(k, v) end

算法笔记_158:算法提高 逆序排列(Java)

目录 1 问题描述 2 解决方案 1 问题描述 问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束.然后程序将把这个数组中的值按逆序重新存放,并打印出来.例如:假设用户输入了一组数据:7 19 -5 6 2 0,那么程序将会把前五个有效数据保存在一个数组中,即7 19 -5 6 2,然后把这个数组中的值按逆序重新存放,即变成了2 6 -5 19 7,然后把它们打印出来. 输入格式:输入只有一行,由若干个整数组成,中间用空格隔开,最末尾

字符串 逆序

NSString *str1=@"I am Lv Chen Hao"; NSArray *arr1=[str1 componentsSeparatedByString:@" "]; NSMutableArray *arr2=[NSMutableArray arrayWithCapacity:0]; NSEnumerator *enumer=[arr1 reverseObjectEnumerator];//逆序遍历数组 NSString *str; while (st