読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #270】集合(Set)の使い方。コレクションは配列(Array)、辞書(Dictionary)だけじゃない。

この記事を読んでわかること

  • 集合(Set)の使い方

Setは同じ型のデータを格納できるコレクションです。
その他のコレクションであるArrayやDictionaryとの違いは以下の点にあります。

  • 要素に重複がない
  • 要素の順序が決まっていない

作成

let setA: Set<Int>
let setB = Set<Int>()
let setC: Set = [5, 2, 3, 5, 1]
// let setD = [5, 2, 3, 5, 1]    // 型推測によりArrayとなるので注意。

print(setC)    // [5, 2, 3, 1]

要素へのアクセス

let setC: Set = [5, 2, 3, 5, 1]

setC.isEmpty
setC.count

setC.contains(3)

setC.first
setC.last

要素の削除

let setC: Set = [5, 2, 3, 5, 1]

setC.insert(9)
setC.remove(2)

集合の操作

論理和

let setC: Set = [5, 2, 3, 5, 1]
let setD: Set = [5, 6]

setC.union(setD)  // [5, 2, 3, 1, 6]

論理積

let setC: Set = [5, 2, 3, 5, 1]
let setD: Set = [5, 6]

setC.intersect(setD)  // [5]

差集合

let setC: Set = [5, 2, 3, 5, 1]
let setD: Set = [5, 6]

setC.intersect(setD)  // [2, 3, 5, 1]

排他的論理和

let setC: Set = [5, 2, 3, 5, 1]
let setD: Set = [5, 6]

setC.intersect(setD)  // [2, 3, 1, 6]

応用

数値の配列から重複を排除する関数

func removeDuplicate(items:[Int]) -> [Int]{
    let intSet = Set(items)

    return Array(intSet)
}

let arrayA = [1, 3, 5, 7, 1]
print(removeDuplicate(arrayA))    // [1, 3, 5, 7]

指定の要素を含んでいるかを返す関数

func hasElement(target:Set<Int>, element:Int) -> Bool{
    let otherSet: Set = [element]
    return target.intersect(otherSet).count > 0
}

let setA: Set = [1, 3, 5, 7, 1]
print(hasElement(setA, element: 5))    // true

参考情報

Swift

iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍 【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】


・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift

詳解 Swift 改訂版

詳解 Swift 改訂版