Javaで配列に要素を追加する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaで配列に要素を追加する方法について解説しています。配列に要素を追加する場合にはSystemクラスのarraycopyメソッドを使います。処理の流れと実際の書き方を学びましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
Javaで配列に要素を追加する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaで配列に要素を追加することで、配列データの操作を行うことができます。
実務でも、Javaで配列に要素を追加して顧客が希望するデータを追加するので、ぜひ学習してみてください。
目次
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
配列に要素を追加する方法について詳しく説明していくね!
お願いします!
配列とは
「配列」というのは、通常の変数が1つにつき1つの値を保持するのに対して、1つを使って複数の値を保持することができるものです。
変数とは、値を入れる箱のようなものです。
例えば、int型の配列の場合は、次のように複数の整数値を保持できます。
[1, 2, 3, 4, 5]
配列の記法例
ここでは配列の記法例を解説します。
配列の宣言
Javaで配列を宣言するには次のように記載します。
型名[] 変数名;
要素の配列指定
配列に要素(保持できる値の数)を指定する場合は、次のように記載します。
型名[] 変数名 = new 型名[要素数];
要素の配列代入
要素を代入するには、次のように記載します。
変数名[インデックス] = 値;
複数要素の配列代入
複数の要素を代入する場合には、次のように記載します。
配列の長さと同じだけの要素を並べて中括弧{}に入れることで可能になります。
変数名= {値1, 値2, 値3, ... };
配列に要素を追加する方法
要素がすべて埋まっている配列に、新しい要素を追加したい場合もあります。
しかし、配列は一度長さを決めてしまったら、その長さを超えて要素を追加できません。
そこで、配列に要素を追加する方法は、配列自体をコピーしてより長い配列に代入してしまうという方法があります。
つまり、実際には配列を追加せずに、配列の長さと同じだけの要素を並べて中括弧{}に入れることで可能になります。
実際には配列を追加しないが、追加したような状態にする方法として、Systemクラスのarraycopyメソッドを使います。
配列に要素を追加するコード
型名[] 古い配列 = {要素1, 要素2, 要素3, 要素4, 要素5, ...}; 型名[] 新しい配列 = new 型名[もとの配列の長さ+追加したい要素の個数]; System.arraycopy(古い配列, 0, 新しい配列, 0, 古い配列の長さ); 新しい配列[インデックス] = 追加する値;
配列に要素を追加する解説
型名[] 古い配列 = {要素1, 要素2, 要素3, 要素4, 要素5, …};では、コピーする前の配列を用意しています。
型名[] 新しい配列 = new 型名[もとの配列の長さ+追加したい要素の個数];では、追加したい要素の個数分だけ長い空の配列を用意しています。
System.arraycopy(古い配列, 0, 新しい配列, 0, 古い配列の長さ);では、arraycopyメソッドで、新しい配列にもとの配列をコピーしています。
新しい配列[インデックス] = 追加する値;では、新しい配列の残りの部分に追加したい要素を代入しています。
実際に書いてみよう
上で紹介した方法を使って配列に要素を追加してみましょう。
今回は、整数型の配列に要素を追加していきます。
サンプルコード
import java.util.*; public class Main { public static void main(String[] args) throws Exception { int[] oldArray = {1,2,3,4,5}; int[] newArray = new int[10]; System.arraycopy(oldArray, 0, newArray, 0, 5); newArray[5] = 6; newArray[6] = 7; newArray[7] = 8; newArray[8] = 9; newArray[9] = 10; System.out.println("古い配列"); for(int i=0; i<5 ; i++){ System.out.println(oldArray[i]); } System.out.println("新しい配列"); for(int i=0; i<10 ; i++){ System.out.println(newArray[i]); } } }
実行結果
解説
import java.util.*;では、Javaを実行するように必要なユーティリティライブラリをインポートしています。
public class Main {では、Mainクラスを宣言しています。
public static void main(String[] args) throws Exception {では、Javaプログラムを実行できるよう必須のメソッドを用意しています。
int[] oldArray = {1,2,3,4,5};では、oldArrayという配列に1,2,3,4,5というデータを代入しています。
int[] newArray = new int[10];では、newArrayという配列に要素数10というデータを代入しています。
System.arraycopy(oldArray, 0, newArray, 0, 5);では、arraycopyメソッドを利用して、oldArrayをnewArrayにコピーしています。
newArray[5] = 6;では、newArrayのインデックス5に6というデータを代入しています。
newArray[6] = 7;では、newArrayのインデックス6に7というデータを代入しています。
newArray[7] = 8;では、newArrayのインデックス7に8というデータを代入しています。
newArray[8] = 9;では、newArrayのインデックス8に9というデータを代入しています。
newArray[9] = 10;では、newArrayのインデックス9に10というデータを代入しています。
System.out.println(“古い配列”);では、古い配列という文字列を表示しています。
for(int i=0; i<5 ; i++){では、for文を利用して、処理を5回繰り返しています。
System.out.println(oldArray[i]);では、oldArrayの値を表示しています。
今回は、次のような表示になります。
1
2
3
4
5
}では、for(int i=0; i<5 ; i++){を終了しています。
System.out.println(“新しい配列”);では、新しい配列という文字列を表示しています。
for(int i=0; i<10 ; i++){では、for文を利用して、処理を10回繰り返しています。
System.out.println(newArray[i]);では、newArrayを表示しています。
}では、for(int i=0; i<10 ; i++){を終了しています。
今回は次のような表示しています。
1
2
3
4
5
6
7
8
9
10
}では、public static void main(String[] args) throws Exception {を終了しています。
}では、public class Main {を終了しています。
まとめ
この記事では、Javaにおける配列に要素を追加する方法を紹介しました。
for文を利用して繰り返し処理を行うことで配列の確認を行いました。
Javaのfor文の使い方 も参考にしてみてください。
今回の方法では、配列に要素を追加する場合には、単純な処理なのにコードが長くなります。
そこで要素の追加などを行うような場合には、別途List型というものを使ってみてください。
コレクションを扱う!JavaでListを使う方法も参考にしてみてください。
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Javaを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのJavaコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaやServletの技術を使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!