目次
プログラミングにおいて、同じようなデータを複数使うことがよくあります。
複数のデータを使う時に便利なのが、「配列」です。
あらゆるプログラミング言語で使われている機能の1つですが、今回はJavaにおける配列の使い方について解説していきます。
プログラミング学習については、次の記事も参考にしてみてください。
Javaの配列の基礎知識
まずはJavaの配列の概要を解説していきます。
Javaにおいて配列とは、「同じ型の複数の値をまとめて扱うことのできる変数」のことです。
Javaの配列とは?
Javaにおいて「配列」とは、変数の一種です。
変数とは、値を格納しておく箱のようなもので、一々値そのものに操作を加えずとも、変数を操作することによって格納されている値を変更したり、出力させることができます。
本来、変数には一つの値しか格納することができません。
しかし、実際には同じような値を複数使うことがあります。
たとえば、生徒のテストの点数を格納して使いたい場合、生徒1人ずつに変数を用意するのは非効率的で、コードの行数も増えてしまいます。
生徒全員分のテストの点数を一つの変数に格納することができるのが「配列」です。
Javaの配列の基本ルール
Javaの配列の基本的なルールをご紹介します。
1つ目のルールは、1つの配列には同じ型の値しか格納できない、というものです。
値には「型」というものがあります。その値がどのような値なのかを示す分類のことです。
「整数型」「文字列型」といった型がありますが、1つの配列には同じ型のものしか入れることができません。
2つ目のルールは、配列の要素にアクセスする時に「インデックス」を使う、というものです。
配列における「要素」とは、格納されている1つ1つの値です。
この要素には、番号が割り当てられます。
「配列「テストの点数」の2番の要素の値を出力する」
といった命令をすれば、2番目に格納されている「50」という値が出力される、という仕組みになっています。
要素にアクセスする際の番号は、「インデックス」と呼ばれます。
「インデックス」は0からスタートして1, 2, …という順番になっています。
プログラミング言語の学習については、次の記事も参考にしてみてください。
Javaの配列<基本的な使い方>
Javaの配列の基本的な使い方を説明していきます。
ここでは、配列の「宣言」「初期化」「データの出力」という3つをご紹介します。
配列の宣言と初期化
配列の「宣言」とは、配列に格納されるデータの型と配列名を指定することです。
配列の宣言方法は、2種類あります。
② データ型 配列名[]
実際に配列を宣言すると、以下のようなコードになります。
int[] scores = {80, 90, 50}; int scores[] = {80, 90, 50};
上記の例は、既に格納する要素が決まっている場合の宣言の仕方です。
配列を初期化し、空の配列も指定することができます。
その場合でも、要素の個数は指定しておかなければなりません。
配列を初期化する際は、次のようなコードを書きます。
scores = new int[5];
[]内の数字が、要素の個数です。
配列のデータを出力
配列のデータを出力する際は、インデックスで番号を指定します。
例えば、以下のような配列を作成したとしましょう。
String[] student = {佐藤, 鈴木, 田中, 伊藤};
続いて、この配列の3番目に格納されている値を出力するコードを書いてみましょう。
System.out.println(nums[2]);
インデックスは0からスタートするため、3番目のデータにアクセスしたい時は「2」を指定します。
そのため、上記のコードを実行すると
田中
と出力されます。
Javaの配列<応用的な使い方>
Javaの配列の応用的な使い方を解説していきます。
ここでは、「要素数の取得」「要素の追加」「文字列への変換」「配列のソート」の仕方を解説していきます。
配列の要素数を取得する
配列にいくつの要素が含まれているのかを確認したい時には、「length」を使います。
先ほどの例を再度使ってみます。
String[] student = {佐藤, 鈴木, 田中, 伊藤}; System.out.println(student.length)
このコードを実行すると、要素の個数である
4
が出力されます。
lengthを使うことで、処理を要素の個数回繰り返したい場合などに記述が簡単になります。
配列の要素を追加する
Javaの配列に要素を追加する方法はすこし複雑です。
配列は一度作ってしまうと、要素の個数を変えることができません。
そのため、配列の要素を追加する際には、新しく別の配列を用意し、その配列に元の配列をコピーするという手順をふむ必要があります。
配列のコピーには、「arraycopy」メソッドを使います。
「arraycopy」メソッドは、次のように使います。
System.arraycopy(コピー元の配列, コピー元配列の開始位置, コピー先の配列, コピー先配列の開始位置, コピー元配列の要素数)
以下は、「scores」という配列の値を「scrores2」にコピーするコードです。
public class Main { public static void main(String[] args) throws Exception { int[] scores = {80,90,50,60,70}; int[] scores2 = new int[10]; System.arraycopy(score1, 0, scores2, 0, scores.length); for(int i=0; i<scores2.length; i++){ System.out.println(score2[i]); } } }
このコードを実行した際の結果は以下のようになります。
80 90 50 60 70 0 0 0 0 0
「scores」に格納されている5つの要素が格納されており、5つ分の要素が新たに作られています。
このように、配列の要素を追加したい時には「arraycopy」メソッドを使います。
配列を文字列に変換する
配列のデータを、一つの文字列に変換することができます。
文字列への変換は、「String.join」メソッドを使います。
「String.join」メソッドは、次のように使います。
String.join("区切り文字", 配列名)
実際に使ってみましょう。
public class test{ public static void main(String[] args){ String[] student ={“佐藤”, “鈴木”, “田中”}; String str_student = String.join(“,”, student); System.out.println(str_student); } }
上記のコードを実行すると、以下のような結果が出力されます。
佐藤,鈴木,田中
今回は区切り文字として「,」を指定したため、要素が「,」で区切られた文字列になっています。
配列をソートする
配列をソートする際は、「Arrays.sort」メソッドを使います。
「Arrays」クラスは、java.utilのパッケージです。importを忘れないようにしましょう。
import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { int scores[] = {80,90,50,60,70}; Arrays.sort(scores); for(int i=0; i<scores.length; i++){ System.out.println(scores[i]); } } }
上記のコードを実行すると、以下のように結果が出力されます。
50,60,70,80,90
Javaの配列をマスターして効率よくコードを書こう!
今回は、Javaの配列の使い方を解説してきました。
配列は、同じデータ型のものをまとめて一つの変数内に格納できる便利なものです。
同じようなデータを多数扱う場合など、有効に使うことで効率よくコードを書くことができます。
今回紹介した使い方以外にも、応用的な使い方がいくつかあります。
ぜひ使い方をマスターしておきましょう。
プログラミング学習は、プログラミングスクールの受講がおすすめです。
スクール選びは、次の記事を参考にしてみてください。