Array – NSMutableArrayでキュー(FIFO)

NSMutableArrayを使ってenqueue, dequeueをする方法のメモ

ポイント

・addObject

・object at Index 0

Queue1, Queue2, Queue3を使ったサンプルコード

[ Queue.h ]

@interface Queue : NSObject {

    NSMutableArray *items;

}

– (void)enqueue:(id)queue;

– (id)dequeue;

@end

[ Queue.m ]

@implementation Queue

– (id)init

{

    self = [super init];

    if (self) {

        // 配列の初期化

        items = [[NSMutableArray alloc] init];

    }

    return self;

}

// キューを入れる

– (void)enqueue:(id)queue

{

    [items addObject:queue];

}

// キューを取り出す

– (id)dequeue

{

    id queue = [items objectAtIndex:0];

    [items removeObjectAtIndex:0];

    return queue;

}

@end

[ ViewController.m]

#import “ViewController.h”

#import “Queue.h”

@implementation ViewController

// Queueを使ってみる

– (void)viewDidLoad

{

    [super viewDidLoad];

    

    // Stackを使ってみる

    Queue *store = [[Queue alloc] init];

    

    // enqueu

    [store enqueue:@”Queue1″];

    [store enqueue:@”Queue2″];

    [store enqueue:@”Queue3″];

    

    

    // dequeue

    NSLog(@”pop: %@”, [store dequeue]);

    NSLog(@”pop: %@”, [store dequeue]);

    NSLog(@”pop: %@”, [store dequeue]);

}

@end

カテゴリーiOS