KotlinでJavaのString[]に相当する配列を作成する方法
Kotlinにおける文字列(String)とは
Stringは、Stringクラスとして実装されたコレクションです。Kotlinの公式ドキュメントでは、文字列は次のように定義されています。
Class String : Comparable<String>, CharSequence
Kotlinにおいて、文字列(String)は文字のコレクションです。文字列は不変(イミュータブル)であり、読み取り専用という性質を持ちます。つまり、一度宣言された文字列の長さや要素を後から変更することはできません。
JavaではString[]と宣言することで空の文字列配列を簡単に作成できますが、Kotlinでも標準ライブラリの関数を使えば同じことが実現できます。この記事では、Kotlinで空の文字列配列を作成する3つの方法を、実際のコード例とともに解説します。
方法1:arrayOf() を使う
Kotlin標準ライブラリには、さまざまな型の配列を作成するための関数が用意されています。まずはarrayOf()を使って文字列の配列を作成する例を見てみましょう。
fun main(args: Array<String>) {
var myEmptyStringArray = arrayOf<String>()
println(myEmptyStringArray)
}
出力結果
[Ljava.lang.String;@4aa298b7
このコードでは、空の文字列配列を「myEmptyStringArray」という名前で宣言し、その内容を出力しています。出力されているのは、配列が格納されているメモリ上の場所を示すハッシュコードです。
方法2:arrayOfNulls() を使う
arrayOfNulls()は、指定したサイズのnull要素のみを持つ配列を作成する関数です。次の例では、先ほどのコードを修正し、サイズ3の空の文字列配列を作成しています。
fun main(args: Array<String>) {
var myEmptyStringArray: Array<String?> = arrayOfNulls(3)
println(myEmptyStringArray)
}
出力結果
[Ljava.lang.String;@4aa298b7
このコードでは、null許容型の文字列配列(Array<String?>)を「myEmptyStringArray」として宣言し、内容を出力しています。ここでも、メモリ上の場所を示すハッシュコードが出力されます。
方法3:emptyArray() を使う
Kotlinでは、emptyArray()関数を使って空の文字列配列を作成することもできます。次の例を見てみましょう。
fun main(args: Array<String>) {
var myEmptyStringArray: Array<String> = emptyArray()
println(myEmptyStringArray)
}
出力結果
[Ljava.lang.String;@4aa298b7
まとめ
JavaのString[]に相当する処理は、Kotlinでは以下の3つの関数で実現できます。
- arrayOf()<String>():型を明示して空の配列を作成する
- arrayOfNulls(n):指定サイズのnull要素だけの配列を作成する
- emptyArray()<String>():完全に空の配列を作成する
用途に応じてこれらの関数を使い分けることで、Javaと同じように柔軟に文字列配列を扱うことができます。
-
JavaのArrayIndexOutOfBoundsExceptionとは?発生原因と対処法を解説
配列とインデックスの基本 配列(Array)とは、同じ型の要素を固定サイズで順番に格納するためのデータ構造(コンテナ/オブジェクト)です。配列のサイズ(長さ)は生成時に決定され、後から変更することはできません。 配列内の各要素の位置は「インデックス(添字)」と呼ばれます。Javaの配列は0始まりのため、最初の要素はインデックス0、2番目の要素はインデックス1、というように順に番号が割り当てられます。 配列の各要素へは、「配列名[インデックス]」という形式の式を使ってアクセスします。 System.out.println(myArray[3]); // 1457 が出力される たとえばサイズ7
-
JavaのString intern()メソッドとは?その役割と使い方をわかりやすく解説
JavaにおけるStringクラスの基本Stringは、Javaで一連の文字(文字列)を格納するためのクラスで、java.langパッケージに属しています。Stringオブジェクトは一度生成すると内容を変更できない「イミュータブル(不変)」という特性を持っています。文字列の保存場所すべてのStringオブジェクトは、ヒープ領域内にある「文字列定数プール(String Constant Pool)」と呼ばれる専用のメモリ領域に格納されます。文字列リテラルを定義するたびに、JVMは文字列定数プール内にその値を持つStringオブジェクトを生成します。そのため、同じ内容の文字列リテラルが複数存在して