[Java]addメソッドでListに要素追加|addAllメソッドで要素を一括追加
![[Java]addメソッドでListに要素追加|addAllメソッドで要素を一括追加](https://www.fenet.jp/java/column/wp-content/uploads/2020/05/a7420dbc2a785c07913db60909be741e_t.jpeg)
- システム
エンジニア - JavaのaddメソッドでListに要素を追加する方法が知りたいです。
- プロジェクト
マネージャー - 要素追加(add)やnullの追加などのListに要素を追加する方法を解説しますので、一緒に見ていきましょう。
[Java]addメソッドでListに要素追加
今回は、JavaでListに要素を追加する方法を説明します。ここでは、要素追加(add)、nullの追加、要素を一括追加(addAll)、要素の上書きについて紹介します。
JavaでListに要素を追加する方法に興味のある方はぜひご覧ください。
要素追加(add)
JavaでListに要素を追加する方法を紹介します。addメソッドを使用します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.ArrayList; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { // ArrayListの宣言・初期化 ArrayList<String> list = new ArrayList<>(Arrays.asList("red","green","blue")); // 追加前に表示 System.out.println(list); // [red, green, blue] // 要素の追加 list.add("yellow"); list.add("black"); // 要素の追加(index指定) list.add(1, "white"); // 追加後に表示 System.out.println(list); // [red, white, green, blue, yellow, black] } } |
実行結果は以下のようになります。
1 2 |
[red, green, blue] [red, white, green, blue, yellow, black] |
このようにJavaでは、addメソッドで要素を追加できます。index指定で追加することもできます。
nullの追加
JavaのListでは、要素にnullを追加することもできます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.util.ArrayList; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { // ArrayListの宣言・初期化 ArrayList<String> list = new ArrayList<>(Arrays.asList("red","green","blue")); // 追加前に表示 System.out.println(list); // [red, green, blue] // 要素の変更 list.set(0, null); // 変更後に表示 System.out.println(list); // [red, green, blue] // 要素の追加 list.add(null); // 追加後に表示 System.out.println(list); // [red, green, blue] } } |
実行結果は以下のようになります。
1 2 3 |
[red, green, blue] [null, green, blue] [null, green, blue, null] |
要素を一括追加(addAll)
JavaでListに要素を一括追加する方法を紹介します。addAllメソッドを使用します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import java.util.ArrayList; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { // ArrayListの宣言・初期化 ArrayList<String> list = new ArrayList<>(Arrays.asList("red","green")); ArrayList<String> list2 = new ArrayList<>(Arrays.asList("blue","yellow")); ArrayList<String> list3 = new ArrayList<>(Arrays.asList("black","white")); // 追加前に表示 System.out.println(list); // [red, green] // ListにListを追加 list.addAll(list2); // 追加後に表示 System.out.println(list); // [red, green, blue, yellow] // ListにListを追加(index指定) list.addAll(1, list3); // 追加後に表示 System.out.println(list); // [red, black, white, green, blue, yellow] // Listを定義せずに追加 list.addAll(Arrays.asList("purple","pink")); // 追加後に表示 System.out.println(list); // [red, black, white, green, blue, yellow, purple, pink] } } |
実行結果は以下のようになります。
1 2 3 4 |
[red, green] [red, green, blue, yellow] [red, black, white, green, blue, yellow] [red, black, white, green, blue, yellow, purple, pink] |
このようにJavaでは、addAllメソッドで要素を一括追加できます。index指定で一括追加することもできます。
上書き
JavaでListにクラスインスタンスを追加する場合は、インスタンスごとに追加してください。まず、要素が上書きされてしまう例を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import java.util.ArrayList; import java.util.Arrays; public class Main { public static class HumanClass { String myName; int myAge; HumanClass(String name, int age) { myName = name; myAge = age; } public void SetName(String name) { myName = name; } public String GetName() { return myName; } public void SetAge(int age) { myAge = age; } public int GetAge() { return myAge; } } public static void main(String[] args) throws Exception { // ArrayListの宣言 ArrayList<HumanClass> list = new ArrayList<>(); HumanClass human = new HumanClass("taro", 20); // Listに追加、表示 list.add(human); list.forEach(s -> System.out.println("name:"+ s.myName + ", age:" + s.myAge)); System.out.println("-----------------"); // インスタンス変更 human.myName = "jiro"; human.myAge = 23; // Listに追加、表示 list.add(human); list.forEach(s -> System.out.println("name:"+ s.myName + ", age:" + s.myAge)); } } |
実行結果は以下のようになります。addした分、要素数は増えますが、アドレスを追加しているので2要素が同じ値になっています。
1 2 3 4 |
name:taro, age:20 ----------------- name:jiro, age:23 name:jiro, age:23 |
インスタンスをnewしてaddするようにしてください。main()のみを以下に記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public static void main(String[] args) throws Exception { // ArrayListの宣言 ArrayList<HumanClass> list = new ArrayList<>(); // Listに追加、表示 list.add(new HumanClass("taro", 20)); list.forEach(s -> System.out.println("name:"+ s.myName + ", age:" + s.myAge)); System.out.println("-----------------"); // Listに追加、表示 list.add(new HumanClass("jiro", 23)); list.forEach(s -> System.out.println("name:"+ s.myName + ", age:" + s.myAge)); } |
実行結果は以下のようになります。
1 2 3 4 |
name:taro, age:20 ----------------- name:taro, age:20 name:jiro, age:23 |
- システム
エンジニア - JavaでListに要素を追加する方法がよく理解できました。
- プロジェクト
マネージャー - より理解を深めるために、実際にJavaでListに要素を追加してみましょう。
まとめ
いかがでしたでしょうか。JavaでListに要素を追加する方法を説明しました。ここでは、addメソッドで要素を追加、nullの追加、addAllメソッドで要素を一括追加、要素の上書きについて紹介しました。
ぜひご自身でJavaのソースコードを書いて、理解を深めてください。
FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


Java新着案件New Job
官公庁向け業務システム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給39万~44万円東京都千代田区(永田町駅)販売管理システム開発/Java/東京都中央区/【WEB面談可】/テレワーク
月給49万~55万円東京都中央区(京橋駅)生命保険会社向けシステム開発/Java/東京都千代田区/【WEB面談可】/テレワーク
月給42万~48万円東京都千代田区(大手町駅)社会保険システムのパッケージ開発/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(新橋駅)金融機関向けシステム更改/Java/東京都江東区/【WEB面談可】/テレワーク
月給46万~51万円東京都江東区(豊洲駅)大手通信会社者向けWebシステム改修/Java/東京都港区/【WEB面談可】/テレワーク
月給42万~48万円東京都港区(品川駅)