Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでArrayListの指定した位置に要素を挿入する方法を解説

JavaのArrayListクラスに用意されているadd()メソッドを使うと、リストに要素を追加できます。このメソッドには、以下の2つのバリアント(オーバーロード)が存在します。

  • add(E e) ― 引数としてオブジェクト(要素)を受け取り、その要素をリストの末尾に追加します。

  • public void add(int index, E element) ― 挿入したい要素と、挿入位置を表す整数値(インデックス)を受け取ります。指定された位置に要素を挿入し、それまでその位置にあった要素や後続の要素はすべて右に1つずつシフトされます(インデックスが1つずつ増えます)。

つまり、インデックスを引数に取るadd()メソッドを使用することで、リスト内の任意の位置に要素を挿入することが可能です。

サンプルコード

import java.util.ArrayList;
import java.util.Iterator;
public class OccurenceOfElements {
    public static void main(String args[]) {
        ArrayList <String> list = new ArrayList<String>();
        // ArrayListオブジェクトの生成
        list.add("JavaFX");
        list.add("Java");
        list.add("WebGL");
        list.add("OpenCV");
        list.add("OpenNLP");
        list.add("JOGL");
        list.add("Hadoop");
        list.add("HBase");
        list.add("Flume");
        list.add("Mahout");
        list.add("Impala");
        System.out.println("配列リストの内容(先頭から末尾へ):");
        Iterator<String> it = list.iterator();
        while(it.hasNext()) {
            System.out.print(it.next()+", ");
        }
        // 6番目の位置に要素を追加
        list.add(6, "Hadoop");
        it = list.iterator();
        System.out.println();
        System.out.println("新しい要素を挿入した後の配列リストの内容:");
        while(it.hasNext()) {
            System.out.print(it.next()+" ");
        }
    }
}

実行結果

配列リストの内容(先頭から末尾へ):
JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala,
新しい要素を挿入した後の配列リストの内容:
JavaFX Java WebGL OpenCV OpenNLP JOGL Hadoop Hadoop HBase Flume Mahout Impala

補足ポイント

  • インデックスは0から始まるため、「6番目の位置」に挿入する場合はadd(6, 要素)と指定します。これは7番目の要素の直前に挿入されることを意味します。

  • 存在しないインデックス(現在のサイズより大きい値)を指定すると、IndexOutOfBoundsExceptionがスローされるので注意が必要です。

  • 指定位置への挿入では、後続要素のシフトが発生するため、大量のデータを扱う場合や頻繁な中間挿入を行う場合はパフォーマンスへの影響も考慮しましょう。

  1. JavaのJTableセルにJRadioButton(ラジオボタン)を追加・挿入する方法

    JTableはJComponentクラスのサブクラスであり、情報を複数の行(Row)と列(Column)で表示するテーブルを作成するために使用できるSwingコンポーネントです。JTable上で値が選択されるとTableModelEventが生成され、このイベントはTableModelListenerインターフェースを実装することによって処理されます。 JTableのセルにラジオボタン(JRadioButton)を追加・挿入したい場合は、TableCellRendererインターフェースとDefaultCellEditorクラスをそれぞれカスタマイズします。レンダラーがセルの「表示」を担当し、

  2. 【Java】JTableのセル内にチェックボックス(JCheckBox)を表示・追加する方法

    JTableはJComponentクラスのサブクラスであり、複数の行と列から構成される表形式のデータを表示するためのコンポーネントです。JTable上で値が選択されるとTableModelEventが発生し、このイベントはTableModelListenerインターフェースを実装することで処理できます。 JTableのセル内にチェックボックスを表示したい場合は、テーブルモデルのgetColumnClass()メソッドをオーバーライドし、Boolean.classを返すようにします。こうすることで、Swingは該当する列に対して自動的にチェックボックス(JCheckBox)をセルレンダラーおよび