初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
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番目のエレメントになりました。