Javaの配列に値を追加する方法はいくつか存在します。また、リストを使って値を追加する方法も同時に解説しています。
この記事を見れば配列とArrayList(コレクション)に対して値を追加する方法をわかりやすく解説します!
なお、Javaの記事については、こちらにまとめています。
配列に値を追加する方法
通常の配列(固定長の配列)に値を追加する方法
固定長の配列には値を追加するという方法がありません。その代わりに追加したい分だけ配列の要素数を大きくした配列を別途用意し、値をコピーして使うという方法を取ります。
int[] foo = new int[10]; // 元の配列 int[] bar = new int[15]; // データを5個追加したい場合に用意する配列 System.arraycopy(foo, 0, bar, 0, 10);
これでfooの中身がbarにコピーされます。上記の場合だと配列fooの値を先頭からコピーしているため配列barの後ろ5つの要素に入れたい値を入れて使うという事になります。
しかし、この方法はオススメできません。何故かと言うと今回の例では配列の要素数が10や15などの小さい要素数でしたがこれがもっと大きな数となるとコピーするために無駄なメモリを確保する必要が出てくるためオススメできません。
さらに値を追加したいという単純な話なのにわざわざ、別途配列を用意して値をコピーしてコピーした後ろの位置に追加したい値を代入していくというフローがとても面倒でわかりづらいです。
こういった問題もあるため配列のサイズが変わる可能性がある場合(可変長)や配列の操作を簡単に行いたい場合はArrayListを使うことをおすすめします。
コレクション(ArrayList)に値を追加する方法
先程の項目で触れたArrayListを使い値を追加するとどのような書き方をする必要があるかを解説したいと思います。
ArrayList<Integer> hoge = new ArrayList<Integer>(); hoge.add(1); hoge.add(2); hoge.add(3);
たった、これだけで配列に値が追加できます。上記の例ですと配列の末尾に値が追加されていきます。
また、配列の方が「int」ではなく「Integer」となっていますが、ArrayListでは基本型(プリミティブ型)といった方が指定できないというルールがあります。intを使いたい場合はIntegerを、floatを使いたい場合はFloatといった具合にそれぞれの基本形に対応するクラスを使いましょう!
配列についてもっと詳しく知りたい!
配列についてもっと知りたい方はこちらもご覧ください!
まとめ
いかがだったでしょうか。
固定長の配列に値を追加する方法は紹介させていただきましたがとても面倒でプログラムを組む上でもあまりオススメできません。極力ArrayListを使うと配列の操作がとても楽になるのではないかと思います!