ios實(shí)現(xiàn)簡易隊(duì)列
更新時(shí)間:2020年02月21日 07:22:58 作者:zyw658000
這篇文章主要為大家詳細(xì)介紹了ios實(shí)現(xiàn)簡易隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了ios實(shí)現(xiàn)簡易隊(duì)列的具體代碼,供大家參考,具體內(nèi)容如下
滿足一些特殊需求
接口部分(隊(duì)列支持需求)
#import <Foundation/Foundation.h> @interface XMQueue : NSObject ///隊(duì)列追加 - (void)add:(id) obj; ///隊(duì)列取出 - (id)next; ///返回隊(duì)列最前端,不刪除隊(duì)列內(nèi)元素 - (id)first; ///隊(duì)列內(nèi)是否還有元素 - (BOOL) isEmpty; ///隊(duì)列轉(zhuǎn)array - (NSArray *) arrayCopy; @end
實(shí)現(xiàn)方法
#import "XMQueue.h" @interface XMQueue() @property NSMutableArray *array; @property NSInteger currentIndex; @end @implementation XMQueue - (instancetype)init { self = [super init]; if (self) { self.array = [[NSMutableArray alloc] initWithCapacity:32]; } return self; } - (void)add:(id) obj{ if (self.currentIndex >= self.array.count-1) { NSMutableArray *newArray = [[NSMutableArray alloc] initWithCapacity:self.array.count*2]; for (id obj in self.array) { [newArray addObject:obj]; } self.array = newArray; } [self.array addObject:obj]; } - (id)next{ if (![self isEmpty]) { id obj = [self.array objectAtIndex:0]; [self.array removeObjectAtIndex:0]; return obj; }else{ return @"Empty"; } } - (id)first{ if (![self isEmpty]) { return self.array[0]; }else{ return @"Empty"; } } - (BOOL) isEmpty{ return self.array.count == 0; } @end
測試
XMQueue *queue = [[XMQueue alloc] init]; for (int i = 0; i < 5; i++) { [queue add:[NSNumber numberWithInt:i]]; } for (NSNumber *number in [queue arrayCopy]) { printf("%d,",[number intValue]); } printf("\n"); [queue add:[queue next]]; for (NSNumber *number in [queue arrayCopy]) { printf("%d,",[number intValue]); } printf("\n"); [queue add:[queue next]]; for (NSNumber *number in [queue arrayCopy]) { printf("%d,",[number intValue]); } printf("\n"); [queue add:[queue next]]; for (NSNumber *number in [queue arrayCopy]) { printf("%d,",[number intValue]); } printf("\n"); [queue add:[queue next]]; for (NSNumber *number in [queue arrayCopy]) { printf("%d,",[number intValue]); } printf("\n"); [queue add:[queue next]]; for (NSNumber *number in [queue arrayCopy]) { printf("%d,",[number intValue]); }
結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在iOS App中實(shí)現(xiàn)地理位置定位的基本方法解析
這篇文章主要介紹了在iOS App中實(shí)現(xiàn)地理位置定位的基本方法解析,包括獲取當(dāng)前位置和計(jì)算兩點(diǎn)間距離等基本功能的實(shí)現(xiàn),需要的朋友可以參考下2016-05-05iOS中Label實(shí)現(xiàn)顯示不同顏色與字體的方法
這篇文章主要給大家介紹了關(guān)于在iOS中Label實(shí)現(xiàn)顯示不同顏色與字體的相關(guān)資料,文中分別介紹了利用range或者文字兩種實(shí)現(xiàn)的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11關(guān)于iOS 11下app圖標(biāo)變空白問題的解決方法
升級到iOS11系統(tǒng)下自己的項(xiàng)目桌面app圖標(biāo)不見了,通過查找相關(guān)的資料終于找到了解決方法,下面這篇文章主要給大家介紹了關(guān)于iOS 11下app圖標(biāo)變空白問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12詳解iOS開發(fā)中解析JSON中的boolean類型的數(shù)據(jù)遇到的問題
這篇文章主要介紹了詳解iOS開發(fā)中解析JSON中的boolean類型的數(shù)據(jù)遇到的問題,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12