Objective-C セット

セットは配列と同じ感じだが、和集合、積集合、差集合が使用できる。

目次

セットの作成

セットはNSSetクラスのsetWithArrayメソッドを使用し配列から作成できる。

// 配列の作成
NSArray *arr1 = @[@"item1", @"item2", @"item3"];
NSArray *arr2 = @[@"item3", @"item4", @"item5"];

// セットの作成
NSSet *set1 = [NSSet setWithArray: arr1];
NSSet *set2 = [NSSet setWithArray: arr2];

和集合

unionSetメソッドを使い複数のセットにある要素をすべて含んだセットを作成する。作成するセットは要素数が変化するのでNSMutableSetクラスでセットを作成します。

// 配列の作成
NSArray *arr1 = @[@"item1", @"item2", @"item3"];
NSArray *arr2 = @[@"item3", @"item4", @"item5"];

// セットの作成
NSSet *set1 = [NSSet setWithArray: arr1];
NSSet *set2 = [NSSet setWithArray: arr2];

// 和集合
NSMutableSet *mtset = [NSMutableSet setWithCapacity:1];
[mtset unionSet: set1];
[mtset unionSet: set2];
// mtsetの中身はitem3,item2,item5,item1,item4

積集合

intersectSetメソッドを使い複数のセットで共通している要素をだけのセットを作成する。

NSArray *arr1 = @[@"item1", @"item2", @"item3"];
NSArray *arr2 = @[@"item3", @"item4", @"item5"];

// セットの作成
NSSet *set1 = [NSSet setWithArray: arr1];
NSSet *set2 = [NSSet setWithArray: arr2];

// 元になるセットを作成
NSMutableSet *mtset = [NSMutableSet setWithArray: arr1];
// 積集合
[mtset intersectSet: set2];
// mtsetの中身はitem3

差集合

minusSetメソッドを使い元のセットから指定されたセットに含まれている要素を除いたセットを作成する。

NSArray *arr1 = @[@"item1", @"item2", @"item3"];
NSArray *arr2 = @[@"item3", @"item4", @"item5"];

// セットの作成
NSSet *set1 = [NSSet setWithArray: arr1];
NSSet *set2 = [NSSet setWithArray: arr2];

// 元になるセットを作成
NSMutableSet *mtset = [NSMutableSet setWithArray: arr1];
// 差集合
[mtset minusSet: set2];
// mtsetの中身はitem2,item1
phpの配列でいうところのunionとかarray_intersectとかarray_diffかな。

Follow me!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

iOSアプリ

前の記事

Objective-C 配列
iOSアプリ

次の記事

Objective-C 辞書