Swiftの勉強 第13回 配列

swift

[amazonjs asin=”4800711487″ locale=”JP” tmpl=”Small” title=”詳細! Swift 3 iPhoneアプリ開発 入門ノート Swift3 + Xcode 8対応”]

配列を作る

配列を使うと複数の値をひとまとめにして扱える。

書式
let 配列名 = [値1,値2,値3,…]
var 配列名 = [値1,値2,値3,…]

let strArray = ["a", "b", "c"]
let intArray = [1, 2, 3]
var boolArray = [true, false, true]
var tupleArray = [(0,0), (100,200), (3,3)]

型を限定した配列と作る

書式
let 配列名:[値の型]
var 配列名:[値の型]

let colors:[String] = ["red", "blue", "Indigo"]
let numList:[int] = [10, 20, 30]
var resultList:[Bool]
retultList = [true, false, true]

配列の型指定にはArray<値の型>と使用した書式もある。この書式は関数の定義等で必要となります。
書式
let 配列名:Array<値の型>
var 配列名:Array<値の型>

let colors:Array = ["red", "blue", "Indigo"]
let numList:Array = [10, 20, 30]
var resultList:Array
retultList = [true, false, true]

配列の値の型推論
配列にも型推論は有効。

空の配列

空の配列も作成できる。
書式
[値の型]()
Array<値の値>()

var strArray = [String]()
var intArray = [Int]()
var doubleArray = Array<Double>()
// 値の設定
strArray = ["a", "b", "c"]
varArray = [1, 2, 3]
doubleArray = [1.1, 2.1, 3.1]

配列が空か調べる
配列が空かどうかはisEmptyプロパティで調べることができる。配列が空ならtrue、値があればfalseが帰る。

配列の値の個数
配列の値の個数はcountプロパティで調べることができる。

// 配列が空かどうか
var theArray = [1, 2, 3]
theArray = []
if theArray.isEmpty {
   print("theArrayは空です。")
}

// 配列の個数を求める
let aArray = [1, 2, 3, 4, 5]
print(aArray.count) // 5

配列を同じ値で初期化する

書式
[値の型](repeating:値,count:個数)

let zeroList = [Double](repeating:0.0, count:10)
let xList = [String](repeating:"初期値", count:5)

連続番号が入った配列を作る

レンジ演算子を使用すると、連続番号が入った配列を作成できる。

let numbers = [Int](-3...3)
print(numbers)

// 結果
[-3, -2, -1, 0, 1, 2, 3]

配列と配列を連結する

配列と配列は+演算子で連結できる。

let basicCourse = ["ラン", "スイム"]
let fullCourse = basicCourse + ["バイク", "カヌー"]
print(basicCourse)
print(fullCourse)

//結果
["ラン", "スイム"]
["ラン", "スイム", "バイク", "カヌー"]

配列から値を取り出す

配列の値にアクセスする

配列の値には、配列[インデックス番号]のように位置を指定してアクセスする。配列のインデックス番号は0から始まる。

let abcArray = ["a", "b", "c", "d", "e", "f", "g", "h"]
let str1 = abcArray[0]
let str2 = abcArray[2]
let newArray = abcArray[4...6]
print(str1)
print(str2)
print(newArray)

//結果
a
c
["e", "f", "g"]

値を入れ替える
変数で定義してある配列は値を更新できる。レンジ演算子も使える。

var varArray = ["a", "b", "c", "d", "e", "f", "g", "h"]
varArray[0] = "あ"
varArray[2] = "えん"
varArray[4...6] = ["赤", "橙","黄", "緑", "青", "藍", "紫"]
print(varArray)

//結果
["あ", "b", "えん", "d", "赤", "橙","黄", "緑", "青", "藍", "紫", "h"]

多次元配列

配列の中に配列をいれることができる。配列[インデックス番号][インデックス番号]…とすることで配列の中の配列にアクセスできる。

var nestArray = [["a1", "a2", "a3"], ["b1", "b2", "b3"], ["c1", "c2", "c3"]]
let theValue = nestArray[1][2] // b3の取り出し
nestArray[2][0] = "Update" // 値の更新
print(theValue)
print(nestArray)

//結果
b3
[["a1", "a2", "a3"], ["b1", "b2", "b3"], ["Update", "c2", "c3"]]

配列から全ての値を取り出す

配列から全ての値を取り出すには、for-inループを使用できる。

let numArray = [53, 45, 67, 81, 77]
var sum = 0
var max = Int.max
var min = Int.min

for item in numArray {
    sum += item // 合計
    if item < min {
       min = item
    } else if item > max {
       max = item
    }
}
// 平均
let ave = Double(sum)/Double(numArray.count)
    

インデックス番号と値を取り出す
enumrated()を使用することで、for-inループを使って値と同時にインデックス番号を(index,value)のタプルに取り出すことができる。

let colorList = ["blue", "yellow", "red", "green"]
for (index, value) in colorList.enumerated() {
    print((index, value))
}

//結果
(0,"blue")
(1,"yellow")
(2,"red")
(3,"green")

最初の値と最後の値を取り出す

配列の最初の値はfirst、最後の値はlastで取り出すことができる。
値の設定は出来ない。

配列の値をソートする

配列の値を並べ替えるにはsort()を使います。sort()は対象の配列の値を並び替えるのでvarで宣言します。

var ageArray = [18, 30, 33, 19, 43, 13]
ageArray.sort()
print(ageArray)

//結果
[13, 18, 19, 30, 33, 43]

ソート済の配列を新規に作る
soted()は対象の配列の値は変更せずソート済の配列を新たに作成する。

let fruit = ["orange", "apple", "pineapple", "banana"]
let fruitSorted = fruit.sorted()

配列の値の追加と削除

配列に値を追加・挿入する

値を追加する
配列に値を追加するにはappend()メソッドを使う。値は配列の最後に追加される。

値を挿入する
配列に値を挿入するにはinsert()メソッドを使う。値は指定された場所に挿入される。

//値を追加
var colors = ["red", "green"]
colors.append("yellow")
print(colors)

//結果
["red", "green", "yellow"]


//値を挿入
var aList = ["a", "b", "c", "d"]
aList.insert("ABC", at:2)
print(aList)

//結果
["a", "b" "ABC", "c", "d"]

配列の値を削除する

指定した位置の値を削除する
remove(at:)メソッドで削除する。

最初の値を削除する
removeFirst()メソッドで削除する。

最後の値を削除する
removeLast()メソッドで削除する。

全ての値を削除する
removeAll()メソッドで削除する。または[]を設定する。

//指定した位置の値を削除する
var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"]
let delColor = colorArray.remove(at: 2)
print(delColor)

//結果
["red", "blue", "black", "white", "orange", "indigo"]

//最初の値を削除する
var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"]
let delColor = colorArray.removeFirst()
print(delColor)

//結果
["blue", "green", "black", "white", "orange", "indigo"]


//最後の値を削除する
var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"]
let delColor = colorArray.removeLast()
print(delColor)

//結果
["red", "blue", "green", "black", "white", "orange"]

//全ての値を削除する
var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"]
let delColor = colorArray.removeAll()
print(delColor)

//結果
[]
タイトルとURLをコピーしました