List(Vector)

ここでは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と大きな違いが同期です。Vectorは同期できるのです。

同期とはどういうことでしょうか?

例を出して説明します。

たとえば2人のプログラマが(ここではAさんとBさんにします)共同で一つのプログラムを作成していた場合に
Aさんがプログラムに変更を加えているときにBさんもプログラムに変更していたとします。
Aさんのほうが作業を早く終えてプログラムの変更を終了しました。その後にBさんも作業を終えて終了しました。

結果はどうなるでしょう。

最後に終了したBさんの変更だけが反映されAさんの変更は無効になりました。
このようなトラブルを未然に防ぐのが同期です。

同期とは一人の人がアクセスしている間アクセスできなくする仕組みです。

つまりArrayListクラスはこの同期が出来ません。

ページのトップへ戻る