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