【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Swift】配列の基本的な使い方から要素の追加・削除・ソートについて徹底解説!

【Swift】配列の基本的な使い方から要素の追加・削除・ソートについて徹底解説!
ふくしま

こんにちは!株式会社メモリアインクのふくしまです!

この記事ではSwiftにおける配列の基本から始め、値の追加や削除までの操作を徹底的に解説します。

この記事を読んで分かること…
・Swiftにおける配列の基本的な使い方
・配列への値の追加方法
・配列からの値の削除方法
・配列の値をソートする方法

目次

Swiftにおける配列の基本

配列(Array)は、同じタイプの複数の値を順序付けて格納するためのデータ構造です。

サンプルコード

// 配列の宣言と初期化
var fruits: [String] = ["Apple", "Banana", "Cherry"]
// 配列の要素にアクセス
print(fruits[0]) // Apple
// 配列の要素数を取得
print(fruits.count) // 3
// 空の配列かどうかを確認
print(fruits.isEmpty) // false

サンプルコードの説明

◾️行2: 文字列の配列fruitsを宣言し、初期値として3つのフルーツを格納しています。
◾️行4: 配列fruitsの最初の要素(”Apple”)にアクセスしています。
配列の要素は左から0, 1, 2, 3,…とアクセスすることができます。
・fruits[0]=”Apple”
・fruits[1]=”Banana”
・fruits[2]=”Cherry”
◾️行6: 配列fruitsに格納されている要素の数(3)を取得しています。
.countは、Swiftの配列で使用されるプロパティの一つで、配列に含まれる要素の数(つまり、配列の長さ)を表します。このプロパティを使用することで、配列内に現在格納されている要素の総数を整数値として取得することができます。
◾️行8: 配列fruitsが空ではない(false)ことを確認しています。
.isEmptyは、Swiftの配列や他のコレクション型(例えば、StringDictionarySetなど)で使用できるプロパティで、コレクションが空(つまり、要素を一つも含まない)かどうかを判断するために使用されます。このプロパティはBool型の値を返し、コレクションが空の場合はtrueを、一つ以上の要素が含まれている場合はfalseを返します。

配列への要素の追加

ここでは配列に新しい要素を追加するいくつかの方法を解説します。

サンプルコード

// 配列に要素を追加
fruits.append("Dragonfruit")
// 別の配列の要素を追加
fruits += ["Mango", "Pineapple"]
// 特定の位置に要素を挿入
fruits.insert("Orange", at: 1)

サンプルコードの説明

◾️行2: 配列fruitsの末尾に新しい要素”Dragonfruit”を追加しています。
.appendメソッドはSwiftの配列における基本的な操作の一つで、配列の末尾に新しい要素を追加します。このメソッドは、配列が格納している要素の型と同じ型の値を引数として受け取り、その値を配列の最後に追加するために使用されます。
◾️行4: 配列fruitsに別の配列[“Mango”, “Pineapple”]の要素を追加しています。
Swiftにおける+=演算子は、配列の末尾に一つ以上の新しい要素を追加するために使用されます。具体的には、左側の配列に右側にある一つまたは複数の要素を追加します。この演算子は、主に配列同士を結合する際に便利です。
◾️行6: 配列fruitsのインデックス1の位置に”Orange”を挿入しています。
.insertメソッドはSwiftの配列において、指定されたインデックスの位置に新しい要素を挿入するために使用されます。このメソッドを使うことで、配列の特定の位置に直接要素を追加することが可能になり、配列の順序を自由に制御できます。

配列の要素の削除

配列から要素を削除する方法には、特定のインデックスの要素を削除する方法や、すべての要素を削除する方法があります。

サンプルコード

// 特定のインデックスの要素を削除
fruits.remove(at: 0)
// 配列のすべての要素を削除
fruits.removeAll()

サンプルコードの説明

◾️行2: 配列fruitsから最初の要素を削除しています。
.remove(at:)メソッドは、指定されたインデックスにある要素を配列から削除し、削除された要素を返します。
◾️行4: 配列fruitsからすべての要素を削除しています。
.removeAll()メソッドは、配列のすべての要素を削除します。このメソッドは何も返しません。

配列の要素のソート

Swiftで配列をソートする方法は主に2つあります。1つは配列自身を直接変更するsort()メソッド、もう1つは配列のソートされたコピーを生成するsorted()メソッドです。これらのメソッドは、デフォルトで昇順に要素をソートしますが、カスタムの比較ロジックを提供することも可能です。

sort()

sort()メソッドは、配列自体を変更してその要素をソートします。これは”in-place”ソートとも呼ばれ、元の配列の内容が変更されます。

サンプルコード

var numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort()
print(numbers) // 出力: [1, 1, 2, 3, 4, 5, 9]

numbers.sort(by: >)
print(numbers) // 出力: [9, 5, 4, 3, 2, 1, 1]

サンプルコードの説明

◾️行2: .sort()メソッドを使用して、numbers配列の要素を昇順(小さいものから大きいものへ)にソートします。
◾️行5: .sort(by:)メソッドを使用して、numbers配列を今度は降順(大きいものから小さいものへ)にソートします。ここで>演算子が比較関数として使われており、配列の要素を降順に並べ替えるための条件を提供しています。

sorted()

sorted()メソッドは、元の配列はそのままに、ソートされた新しい配列を返します。これは非破壊的な操作で、元の配列には影響を与えません。

サンプルコード

let numbers = [3, 1, 4, 1, 5, 9, 2]
let sortedNumbers = numbers.sorted()
print(sortedNumbers) // 出力: [1, 1, 2, 3, 4, 5, 9]

let descendingNumbers = numbers.sorted(by: >)
print(descendingNumbers) // 出力: [9, 5, 4, 3, 2, 1, 1]

サンプルコードの説明

◾️行2: .sorted()メソッドを使用して、numbers配列の要素を昇順にソートした新しい配列を生成しています。sortedNumbersはこの新しいソートされた配列を保持します。.sorted()メソッドは元の配列numbersには影響を与えません。
◾️行5: .sorted(by:)メソッドを使用して、numbers配列の要素を降順にソートした新しい配列を生成しています。ここで>演算子は、要素を比較して大きいものから小さいものへ順に並べるための条件を提供しています。descendingNumbersはこの新しいソートされた配列を保持します。

まとめ

いかがでしたか?
この記事では、、配列の基本的な使い方から、値の追加、削除、ソートについて詳しく解説しました。
この記事が皆様のお役に立てれば光栄です。それではまた、次の記事でお会いしましょう〜

ふくしま

この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
をオススメします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

目次