プログラミングにおいて、よく使用するデータ形式として配列(Array)があります。
この記事では配列(Array)について、
・配列の基本的な使い方
・配列の初期化方法
などの基本的な解説から、
・配列の要素の追加する方法(append)
・配列を結合、区切り文字で結合する方法(joined)
・配列をソートする方法(sorted)
などの応用的な使い方についても解説していきます。
ここでは、使用頻度が高い配列(Array)について詳しく解説していきます!
※この記事ではSwift3.1を使用しています。
配列(Array)の使い方
配列(Array)とは、さまざまなアプリケーションでも使われる機会が多く、1つの変数に複数の値が格納されたデータ形式となります。
配列では整数から文字列、クラスなどのあらゆる種類のデータ形式を格納することが可能です。
配列を作成する方法は簡単で、以下のように,(コンマ)で区切ったリストを[](角括弧)で囲むだけで作成することができます。
書き方1(型指定なし):
let 配列名 = [値1, 値2, 値3, ……]
以下のように型を指定して配列を作成することもできます。
書き方2(型指定):
let 配列名: [Int] = [値1, 値2, 値3, ……]
Swiftについては、初期値で型が推測されるので、通常は型を指定する必要はありません。
注意点:
変数と同様に変数(var)を指定すると要素の変更が可能で、定数(let)の場合は要素の変更はできません。
とくに値の変更が無い場合はletを使用したほうが安全です。
配列の作成
ここでは実際に配列の作成方法を見ていきましょう!
以下に整数値を格納した配列を作成するサンプルを紹介します。
サンプルプログラム1(整数の配列):
//配列定義(整数) let numbers = [1, 2, 3, 4, 5, 10, 15] print("\(numbers[0])") print("\(numbers[5])")
配列は先述したように[](角括弧)を囲んだ中に,(コンマ)区切りでデータを格納します。
配列のデータは要素数0から順番に格納されていきます。
サンプルではprintで配列の要素数0と5を指定して出力しているので、結果は以下となります。
実行結果:
1 10
続けてString型の配列を作成するサンプルです。
サンプルプログラム2(文字列の配列):
//配列定義(文字列) let fruits = ["りんご", "オレンジ", "メロン", "バナナ", "パイナップル"] print("\(fruits[0])") print("\(fruits[3])")
実行結果:
りんご バナナ
また、以下のようにfor文で配列の値をまとめて取得することもできます。
サンプルプログラム3(for文で配列をまとめて取得):
//配列定義(整数) let numbers = [1, 2, 3, 4, 5, 10, 15] for value in numbers { print("\(value)") }
実行結果:
1 2 3 4 5 10 15
for文などの繰り返し処理の使い方については、以下の記事で詳しく解説しています!
配列の初期化
以下のように配列の宣言時に型を指定して、空の配列を作成することができます。
空の配列は配列を使用することがわかっていて、あとから値を追加するときなどに定義します。
サンプルプログラム:
// String型の空の配列を作成 var arrayString: [String] = [] // Float型の空の配列を作成 var arrayFloats: Array<Float> = Array()
また、配列にデフォルトで指定要素分を固定値で初期化したい場合は、以下のように記述します。
書き方:
Array(repeating: 初期値, count: 要素数)
引数:
repeatingには初期値を指定し、countには要素数を指定します。
以下に要素数分固定値で初期化するサンプルを記述します。
サンプルプログラム:
//指定要素分固定値で初期化する var arrayCounts = Array(repeating: 0, count: 5) print(arrayCounts)
実行結果:
[0, 0, 0, 0, 0]
配列の要素の追加(append)
配列の要素を追加したい場合はappendメソッドを使用します。
appendメソッドは以下のように記述します。
書き方:
配列.append(値)
引数:
引数には追加する値を記述します。
サンプルプログラム1:
var fruits = ["りんご", "オレンジ", "メロン", "バナナ", "パイナップル"] //appendで要素を1つ追加 fruits.append("いちご"); for value in fruits { print("\(value)") }
実行結果:
りんご オレンジ メロン バナナ パイナップル いちご
また、以下のように+=演算子を使用して配列の要素を1つ追加することもできます。
サンプルプログラム2:
var fruits = ["りんご", "オレンジ", "メロン", "バナナ", "パイナップル"] //+=演算子で要素を1つ追加 fruits += ["いちご"] for value in fruits { print("\(value)") }
実行結果:
りんご オレンジ メロン バナナ パイナップル いちご
配列に要素をまとめて追加するにはappendContentsOfメソッドを使用しますが、Swift3.x系では削除されました。
配列を結合する
配列を結合して文字列に変換する(joined)
配列を結合して文字列を作成するにはjoinedメソッドを使用します。
joinedメソッドは以下のように記述します。
書き方1(引数なし):
配列.joined()
引数を指定しない場合は、配列を文字列として結合します。
以下にjoinedメソッドを使用して配列を結合するサンプルを紹介します。
サンプルプログラム:
let fruits = ["りんご", "オレンジ", "メロン", "バナナ", "パイナップル"] //配列を結合する let str:String = fruits.joined() print(str)
実行結果:
りんごオレンジメロンバナナパイナップル
配列を特定の区切り文字で結合する(joined)
joinedメソッドを使用すれば、配列を特定の区切り文字で結合することもできます。
書き方2(引数あり):
配列.joind(separator: “区切り文字”)
引数:
引数のseparatorには/(スラッシュ)や,(コンマ)などの区切り文字を指定します。
以下にjoinメソッドを使用して区切り文字で結合するサンプルを紹介します。
サンプルプログラム:
let fruits = ["りんご", "オレンジ", "メロン", "バナナ", "パイナップル"] //配列を区切り文字で結合する let str:String = fruits.joined(separator: ",") print(str)
実行結果:
りんご,オレンジ,メロン,バナナ,パイナップル
このように配列をコンマ区切りで結合すれば、コンマ区切りのデータ形式であるCSVファイルなどを作成するときにも便利です。
配列のソート(sorted)
配列をソートするにはsortedを使用します。
sortedは以下のように記述します。
書き方(昇順):
配列.sorted {$0 < $1}
書き方(降順):
配列.sorted {$0 > $1}
以下にsortedを使用して、配列をソートするサンプルを紹介します。
サンプルプログラム1(昇順):
//整数の昇順ソート let intArray = [5, 3, 4, 1, 2] let sortedInt = intArray.sorted { $0 < $1 } print(sortedInt) //文字列の昇順ソート let strArray = ["item-b", "item-c", "item-a", "item-e", "item-d",] let sortedStr = strArray.sorted { $0 < $1 } print(sortedStr)
実行結果:
[1, 2, 3, 4, 5] ["item-a", "item-b", "item-c", "item-d", "item-e"]
サンプルプログラム2(降順):
//整数の降順ソート let intArray = [5, 3, 4, 1, 2] let sortedInt = intArray.sorted { $0 > $1 } print(sortedInt) //文字列の降順ソート let strArray = ["item-b", "item-c", "item-a", "item-e", "item-d",] let sortedStr = strArray.sorted { $0 > $1 } print(sortedStr)
実行結果:
[5, 4, 3, 2, 1] ["item-e", "item-d", "item-c", "item-b", "item-a"]
まとめ
ここでは配列(Array)について、
・配列の基本的な使い方
・配列の初期化方法
・配列の要素の追加する方法(append)
・配列を結合、区切り文字で結合する方法(joined)
・配列をソートする方法(sorted)
などについて解説しました。
配列(Array)は、プログラミングの処理の中でも使用頻度が高いデータ形式ですので、使い方はしっかりと覚えておきましょう!
もし、配列(Array)の使い方を忘れてしまったら、この記事を思い出してくださいね!