要素の削除

広告

次にArraryListクラスに登録されている要素の中から、指定したインデックス番号の要素を削除してみます。ArrayListクラスで用意されている"remove"メソッドを使います。

リスト内の指定された位置から要素を削除します。そして、後続の要素を左側に移動し、それぞれの
インデックスから 1 を減算します。

パラメータ:
  index - 削除される要素のインデックス 
戻り値:
  リストから削除した要素 
例外: 
  IndexOutOfBoundsException - インデックスが範囲外の場合
    (index < 0 || index >= size())

削除したい要素のインデックス番号を指定して要素を削除します。削除された要素の後に格納されていた要素は、自動的にインデックス番号は1ずつ減ります。(項目が削除される毎に先頭から詰めて配置しなおすということです。その為、ArrayListは項目の追加や削除が遅くなります)。

また全ての要素を削除したい場合には"clear"メソッドを使います。

リストからすべての要素を削除します。この呼び出しが戻ると、このリストは空になります。

使い方としては下記のような感じとなります。

ArrayList<String> array = new ArrayList<String>();

array.add("東京");
array.add("大阪");
array.add("東京");
array.add("千葉");

array.remove(1);
array.clear();

サンプルプログラム

では実際に試してみましょう。

collectionTest5.java

import java.util.ArrayList;

class collectionTest5{
  public static void main(String args[]){
    ArrayList<String> array = new ArrayList<String>();

    array.add("東京");
    array.add("大阪");
    array.add("東京");
    array.add("千葉");

    for (int i = 0 ; i < array.size() ; i++){
      String country = array.get(i);
      System.out.println(country);
    }

    System.out.println("2番目の項目を削除します");

    array.remove(2);

    for (int i = 0 ; i < array.size() ; i++){
      String country = array.get(i);
      System.out.println(country);
    }

    System.out.println("「大阪」の項目を削除します");

    array.remove(array.indexOf("大阪"));

    for (int i = 0 ; i < array.size() ; i++){
      String country = array.get(i);
      System.out.println(country);
    }

    System.out.println("全ての項目を削除します");

    array.clear();

    System.out.println("現在の項目数は " + array.size() + " です");

  }
}

上記をコンパイルして実際に実行してみると下記のようになります。

p5

( Written by Tatsuo Ikura )