MENU

【Kotlin】レッスン4-01:配列の使い方を基礎から学ぼう|宣言・操作・初期化をマスター

tggaa478@yahoo.co.jp

一つ前の章ではKotlinの関数について学習しました。

今回からは コレクション について見ていきましょう。

Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数編
Lesson4:コレクション編

 ・Lesson4-1:配列を理解しよう ◁今回はココ
 ・Lesson4-2:Listを理解しよう
 ・Lesson4-3:Setを理解しよう
 ・Lesson4-4:Mapを理解しよう
 ・Lesson4-5:コレクションを使いこなそう
 ・Lesson4-6:コレクションとジェネリクスを組み合わせよう
 ・確認問題4-☆1:ナインゲームを作ろう
 ・確認問題4-☆2:アラビア数字をローマ数字に変換しよう
 ・確認問題4-☆3:宝探しゲームを作ろう
Lesson5:オブジェクト指向編

<<前のページ

学習記事一覧

次のページ>>

Kotlinの配列の基本とは?|宣言・要素アクセス・サイズ取得を学ぼう

配列は複数の値を一つの変数にまとめて扱うための便利な仕組みです。

この記事ではKotlinの配列について詳しく説明し、基本的な使い方や配列操作の方法を学びます。

配列の概要と特徴|複数の値を1つの変数で扱う

配列とは同じデータ型の値を連続して並べたデータ構造のことです。

例えば複数の整数や文字列を一つの変数にまとめて扱いたい場合に配列を使います。

配列の要素にはインデックス(番号)でアクセスします。インデックスは0から始まるので、最初の要素はインデックス0、2番目は1となります。

配列の作り方|arrayOfとArrayコンストラクタの違い

Kotlinで配列を作成するには、arrayOf関数を使います。いくつか以下は配列の例です。

例: 配列の宣言
fun main() {
    // 整数の配列
    val numbers = arrayOf(1, 2, 3, 4, 5) // 1から5の整数を含む配列を宣言し、定数numbersに代入

    // 文字列の配列
    val names = arrayOf("Alice", "Bob", "Charlie") // 3つの文字列を含む配列を宣言し、定数namesに代入

    // 各要素の表示
    println(numbers[ 0])  // 定数numbersのインデックス0の要素を出力
    println(names[ 1])    // 定数nameのインデックス1の要素を出力
}

このコードを実行すると以下のように出力されます。

1
Bob

この例ではnumbersは整数の配列、namesは文字列の配列です。

printlnを使ってインデックスを指定して特定の要素にアクセスしています。

配列の要素を変更・取得する方法

一度宣言した配列を後から操作することもできます。

要素の変更

配列の要素を変更するには、インデックスを使って直接指定します。

fun main() {
    val fruits = arrayOf("Apple", "Banana", "Cherry") // 3つの文字列を含む配列を宣言
    
    fruits[ 1] = "Orange" // インデックス1(2番目の要素)にorangeを再格納
    
    println(fruits[ 1])  // 出力: Orange
}

このようにインデックスを使うことで、配列内の任意の要素を変更することができます。

配列のサイズ

Kotlinの配列のサイズ(要素の数)は固定です。

つまり作成後にサイズを変更することはできません。どうしても変更が必要な場合は別の配列を作り直すこか、次の記事で紹介するListを使用する必要があります。

またsizeプロパティを使用することで配列のサイズを確認することができます。

fun main() {
    val numbers = arrayOf(1, 2, 3, 4, 5) // サイズが5の配列を宣言
    
    // 配列のサイズを確認
    println("配列のサイズ: ${numbers.size}")  // 出力: 配列のサイズ: 5
}

よく使う配列操作メソッド|ソート・ループ処理

Kotlinでは配列に対する便利な操作が多数提供されています。

ここではよく使われる操作方法をいくつか紹介します。

forループを使った配列の走査

配列内の要素を一つずつ処理する場合、forループが便利です。

fun main() {
    val animals = arrayOf("Cat", "Dog", "Elephant")
    
    for (animal in animals) { // 変数animalに定数animalsの中の配列を順番に代入
        println(animal)       // 配列の要素を順番に出力
    }
}

このループでは配列の各要素がanimalに代入され、順番に出力されています。

配列のソートと出力

KotlinではsortedArray()メソッドを使って簡単に配列のソートが可能です。

また、配列の要素ではなく配列全体を出力する際にはjoinToString()メソッドを使用します。

fun main() {
    val numbers = arrayOf(5, 3, 8, 1, 2)
    
    // 配列を昇順にソート
    val sortedNumbers = numbers.sortedArray() // sortedArray()メソッドを使ってnumbersをソート
    
    // ソート後の配列を表示
    println(sortedNumbers.joinToString())  // 出力: 1, 2, 3, 5, 8
}

この例ではsortedArrayを使って配列を昇順にソートし、joinToStringで要素をカンマ区切りで出力しています。

単純にprintln(numbers)としても正しく出力されないため注意しましょう。

初期化方法の違いと使い分け|値・サイズを指定して生成

配列はarrayOf以外にも、特定の値やサイズで初期化することができます。

特定のサイズで初期化

fun main() {
    // サイズが5の配列を0で初期化
    val zeros = Array(5) { 0 }

    // 配列の要素を表示
    println(zeros.joinToString())  // 出力: 0, 0, 0, 0, 0
}

この例ではサイズ5の配列宣言し、要素をすべて0で初期化しています。

Arrayコンストラクタにサイズと初期値を指定することで、好きな値で配列を初期化できます。

本記事のまとめ|Kotlin配列の基本をマスターしよう

Kotlinの配列は複数の値をまとめて管理できる非常に便利なデータ構造です。

基本的な操作や便利なメソッドを覚えることで、配列を効果的に使えるようになります。

今回紹介した基本的な配列の使い方をぜひ自分でコードを書きながら練習してみてください。

練習問題|Kotlinの配列で平均値を求める方法を理解しよう

配列の平均値を計算しましょう。

5つの整数(10 , 20 , 30 , 40 , 50)を含む配列を作成し、それらの平均値を計算して出力するプログラムを作成してください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 5つの整数を含む配列を作成してください。配列の名前はnumbersとすること。
  • 配列内の全要素を順に足し合わせ、合計を求めてください。
  • 合計を求めた後、配列の要素数で割って平均値を計算し、averageという変数に格納してください。
  • 平均値をprintlnを使って出力してください。出力される文字列は「平均値: 」で始まるようにしてください。

ただし、以下のような実行結果となること。

平均値: 30.0

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1:main関数の定義
  □ 配列numbersを作成し、5つの整数を格納
  □ 変数sumを初期値0で宣言
  □ for文を使用して配列numbersの要素を順に取得
  □ □ 取得した要素を変数sumに加算
  □ 変数averageを宣言し、sumを配列numbersのサイズで割り算して計算
  □ println関数で文字列とaverageを出力

Q
ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

fun main() {
    /* 【穴埋め問題1】
    ここに配列を作成し、5つの整数を格納するコードを書いてください。
    */
    
    /* 【穴埋め問題2】
    ここに合計を格納するための変数を初期化するコードを書いてください。
    */

    // 配列の全要素を順に足し合わせる
    for (number in /* 【穴埋め問題3】ここに配列の名前を記述してください */) {
        /* 【穴埋め問題4】
        配列の要素を合計に足し合わせるコードを書いてください。
        */
    }

    // 平均値を計算(合計を要素数で割る)
    /* 【穴埋め問題5】
    ここに平均値を計算して変数averageに格納するコードを書いてください。
    */

    /* 【穴埋め問題6】
    ここにprintln関数で平均値を出力するコードを書いてください。
    */
}

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

練習問題の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
fun main() {
    val numbers = arrayOf(10, 20, 30, 40, 50) // 5つの整数を含む配列を作成
    var sum = 0 // 合計を格納する変数を初期化

    // 配列の全要素を順に足し合わせる
    for (number in numbers) {
        sum += number
    }

    // 平均値を計算(合計を要素数で割る)
    val average = sum.toDouble() / numbers.size
    println("平均値: $average") // 平均値を出力
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。

配列の定義と初期化

val numbers = arrayOf(10, 20, 30, 40, 50)

まずnumbersという名前の配列を定義しています。

arrayOfを使って配列内に5つの整数(10, 20, 30, 40, 50)を格納しています。この配列は後で計算に使用します。

合計値を格納する変数の初期化

var sum = 0

次にsumという名前の変数を0で初期化します。

この変数は配列内の全ての整数を足し合わせた合計を格納するために使用します。

配列内の要素を順に足し合わせる

for (number in numbers) {
    sum += number
}

この部分ではforループを使用して、配列numbersの各要素を順にsumに足し合わせています。

numberは配列内の各整数を指し示し、sum += numberという記述はsumnumberを加えるという意味です。

平均値の計算

val average = sum.toDouble() / numbers.size

ここでは合計sumを配列の要素数で割ることで平均値を計算しています。

sum.toDouble()は、sumを小数点を含む数値に変換することで、割り算の結果が小数になるようにしています。

numbers.sizeは配列の要素数を返します。

平均値の出力

println("平均値: $average")

最後に計算された平均値をprintlnを使って出力します。

出力は「平均値: 30.0」のようになります。

もっと分かりやすいサイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいKotlin学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました