リブログ記事【Kotlin】Lesson Vol.5 - Kotlinの文法:配列
はじめに前回は、はじめてのKotlinの文法:データ型について学習しました。今回はKotlinの文法:配列ついて説明していきます。以下は前回までの記事です。 第1章 はじめてのKotlinアプリケーション 1.1 開発環境の構築 1.2 Kotlinプロジェクトの作成 1.3 Kotlinプログラムの作成 第2章 Kotlinの文法 2.1 変数 2.2 関数 2.3データ型 第2章:Kotlinの文法2.1 変数 2.1 変数を参照してください。2.2関数 2.2 関数を参照してください。<div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: 2.3データ型 2.3データ型を参照してください。<div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: 2.4配列<div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: <div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: Kotlinの配列は、他の言語に見られるような配列はありません。その代わりにArrayクラスを使います。そのため、Kotlinの配列は、変更可能であり、要素に対して読み取り操作と書き込み操作の両方を実行できます。<div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: ■2.4.1 配列を生成する配列を生成するには、Arrayクラスのコンストラクタを使用する方法と、Kotlinの標準ライブラリを使用して配列を生成する方法があります。◆2.4.1.1コンストラクタを使用して生成まず、Arrayクラスのコンストラクタを使用して生成する方法を説明します。Arrayクラスのコンストラクタは引数を2つ取ります。1つ目が配列の長さ。もう1つが、配列初期化のための関数を取ります。Array<型名>(要素の数, {初期化処理})Kotlinでは型推論が可能なので、型名を省略できます。// [0, 2, 4]の値で初期化val doubleArray = Array(3, {it * 2})Array<String>を["0", "2", "4"]の値で初期化val strDoubleArray = Array(3, { i -> (i * 2).toString() })◆2.4.1.2標準ライブラリを使用して生成もう一方の、Kotlinの標準ライブラリを使用して配列を生成する方法です。// [1, 2, 3, 4, 5]を作成val list = arrayOf(1, 2, 3, 4, 5)val lastChar = name[name.length - 1] // '1'// ["a", "b", "c"]を作成val strList = arrayOf("a", "b", "c")// nullで初期化されたサイズ5の配列を作成するval nullList: Array<Int?> = arrayOfNulls(5)// [1, 2, 3, 4, 5]のjava.util.Listを生成。要素を変更できない。val list = listOf(1, 2, 3, 4, 5)// [1, 2, 3, 4, 5]のjava.util.ArrayListを生成。要素変更可能。val arrayList = arrayListOf(1, 2, 3, 4, 5)// [1, 2, 3, 4, 5]のjava.util.LinkedListを生成。要素変更可能。val linkedList = linkedListOf(1, 2, 3, 4, 5)■2.4.2プリミティブ配列arrayOfメソッドをプリミティブ値と共に使用することができますが、Kotlinはプリミティブ値を対応するオブジェクトラッパークラスにオートボクシングするため、パフォーマンスに影響を及ぼします。このオーバヘッドを回避するために、Kotlinはプリミティブ配列をサポートしており、プリミティブ型のint, char, boolean, long, short, byte, float, doubleの型には、専用のarrayOfメソッドが用意されています。intArrayOf(), charArrayOf(), booleanArrayOf(), longArrayOf(), shortArrayOf(), byteArrayOf(), floatArrayOf, doubleArrayOf関数を使用してプリミティブ配列を作成できます。Kotlinでは型推論が可能なので、型名を省略できます。// プリミティブ型の配列はオーバーヘッド無しでボクシングができるvar intArray = intArrayOf(1, 2, 3)// [0, 2, 4]の値で初期化(オーバヘッド無し)val doubleArray = IntArray(3, {it * 2})■2.4.3要素の取得、代入Kotlinにはset()とget()関数があり、それぞれ配列の特定の要素を直接変更したりアクセスしたりできます。ただし、通常は直接インデックスを指定して要素の取得、代入しますval strArray = arrayOf("a", "b", "c")// 取得println(strArray[0])println(strArray[1])println(strArray[2])println(strArray.get(0))println(strArray.get(1))println(strArray.get(2))// 代入strArray[0] = "d"strArray[1] = "e"strArray[2] = "f"strArray.set(0, "d")strArray.set(1, "3")strArray.set(2, "f")<div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: <div e1c88aa8c02b82358a9d="" https:="" items="" promari="" qiita.com="" style="border-left: おわりに如何でしょうか。Kotlinでは,他の言語に見られるような配列はなく、Arrayクラスを使うなどJavaとは異なる点が多いかと思います。初期化処理にラムダ式を用いて式により初期化を指定できるのも大きな特徴です。次回はコレクションについて説明します。皆様も面白いニュースがありましたらおしえてくださいね。お知らせブログ情報アイデアひとつが3万円に!?発想をお金に変えることができるアプリ「SENSE β版」が7月11日よりリリースされましたので、早速使ってみました。こちらも読んでいただけましたら幸いです。written by たみと@プロマリ