List(ArrayList)

ここではListタイプのクラスについて見ていきます。
まず一番上にはSetと同じようにCollectionインタフェースがあります。
そしてCollectionインタフェースを継承したListインタフェースがあります。
そしてListインタフェースを実装したコレクションクラスの主なクラスにArrayListクラスとVectorクラスがあります。

継承関係は以下のようになります。


Listの特徴

List(リスト)タイプのコレクションは順序付けでオブジェクトを管理していて各要素には配列のようにインデックス番号がつけられています。
番号は0かた始まります。

下記図のようにエレメントに番号が割り当てられています。これがListです。

ArrayListクラスとVectorクラス

の機能は非常に良く似ていますが同期化するかしないかの違いです。
このことについては後程説明します。

主なメソッド

メソッド
説明
add(object e) コレクションの最後に引数に指定されたオブジェクトをエレメントに追加
get(int i) 引数で指定されたインデックス位置のオブジェクトを参照を得る
remove(int i) 引数で指定したオブジェクトをエレメントから削除する
set(int i,object e) 第一引数で指定されたインデックス位置にあるエレメントを第二引数のエレメントに置き換える
size() コレクションに登録されているエレメント数を返す

ArrayListクラス

ArrayListクラスは、サイズ可能な配列で、今まで使ってきた配列は一度要素数を決まればあとから増やすことができませんでした。
しかしここで扱うArrayListクラスは、必要に応じてエレメント(要素)を追加したり削除したりすることができます。
また、Listのメソッドであるaddgetなどを使うことでオブジェクトを操作することもできます。

では、ArrayListクラスのサンプルプログラムを見ていきます。

サンプルプログラム(Sample91.java)

//import宣言
import java.util.*;
class Sample91{
    public static void main(String args[]){

   //ArrayListクラスのオブジェクト生成
     ArrayList list = new ArrayList();

   //ArrayList オブジェクトにエレメントの追加
    String str1 = "おはよう";
    String str2 = "こんにちわ";
    String str3= "こんばんわ";

    list.add(str1);
    list.add(str2);
    list.add(str3);

     //ArrayList オブジェクトのエレメント数
     System.out.println("エレメント数は " + list.size());

     //さらにエレメントを追加します。
    list.add(str1);
    
   //ArrayList オブジェクトのエレメント数
    System.out.println("エレメント数は " + list.size());
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

まずは、SetとListの違いを確認するためにこのようなプログラムを作成しました。
Setタイプのコレクションでは同じオブジェクトを重複することができませんでした。

しかしListタイプのコレクションは重複可能です。

現にSample91ではList.add(str1)を2回追加されています。
エレメント数を確認すればちゃんと追加されているのがわかります。

これが、SetとListの大きな違いです。

では、さらにListクラスのメソッドを見ていきたいと思います。

サンプルプログラム(Sample91_2.java)

//import宣言
import java.util.*;
class Sample91_2{
    public static void main(String args[]){
   //ArrayListクラスのオブジェクト生成
     ArrayList list = new ArrayList();

   //ArrayList オブジェクトにエレメントの追加
    String str1 = "おはよう";
    String str2 = "こんにちわ";
    String str3= "こんばんわ";

    list.add(str1);
    list.add(str2);
    list.add(str3);

     //ArrayList オブジェクトのエレメント数
     System.out.println("エレメント数は " + list.size());

     //さらにエレメントを追加します。
    list.add(str1);
    
   //ArrayList オブジェクトのエレメント数
    System.out.println("エレメント数は " + list.size());

   //ArrayList からエレメントの取り出し
   System.out.println("1番目のエレメントは" + list.get(1));

   //ArrayList から指定のエレメントの削除
  System.out.println("0番目のエレメントの削除 :" + list.remove(0));

   System.out.println("----------------------------------");
   System.out.println("0番目のエレメントは" + list.get(0));
   System.out.println("1番目のエレメントは" + list.get(1));
   System.out.println("2番目のエレメントは" + list.get(2));
} }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

このように引数にインデックス番号を指定してやることで指定したエレメントを削除したりすることもできるのです。
0番目のエレメントである"おはよう"が削除されたので1番目のエレメントである"こんにちわ"が新しく0番目のエレメントになりました。

ページのトップへ戻る