JAVA言語 入門 動的配列(リスト・セット)

TOP > JAVA入門 >  動的配列(リスト・セット)
このエントリーをはてなブックマークに追加

動的配列(リスト・セット)

サイズが不明な動的配列を使用する場合は以下のオブジェクトを使用します。
クラス説明
ArrayList動的配列。
LinkedListArrayListより挿入・削除が高速。
Vector非推奨。
HashSet値の重複を許さない要素。
TreeSet値の重複を許さないソートされた要素。

リスト(ArrayList)

ArrayList は動的にサイズを変更できる配列を扱います。java.util.* をインポートして下さい。
import java.util.*;

class Test {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
		list.add("X");
		list.add("D");
		list.add("A");
		list.add("U");
        
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

関数説明
list.size()配列の個数
list.add(obj)オブジェクト obj を配列の末尾に追加
list.add(n, obj)オブジェクト obj を n番目に場所に追加
list.set(n, obj)n番目の要素を obj に変更
list.get(n)n番目の要素を取得
list.remove(n)n番目の要素を削除
list.isEmpty()空かどうか調べる
list.indexOf(obj)オブジェクト obj と等しい要素のインデックスを取得
list.contains(obj)オブジェクト obj と等しい要素の存在有無
list.addAll(list2)配列の末尾に配列 list2 を追加

リスト(LinkedList)

使用方法は ArrayList と同じです。挿入や削除を頻繁に行う場合は ArrayList よりも LinkedList の方が高速です。ただし、get() による参照は ArrayList の方が高速です。
LinkedList list = new LinkedList();
list.add("X");
list.add("D");
list.add("A");
list.add("U");

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

セット(HashSet)

HashSet は要素に重複がない場合に使用する動的配列です。
HashSet set = new HashSet();
set.add("X");
set.add("D");
set.add("A");
set.add("U");

Iterator it = set.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}

関数説明
set.add(obj)オブジェクト obj を配列の末尾に追加
set.clear()配列をクリアする
set.contains(obj)オブジェクト obj と等しい要素の存在有無
set.isEmpty()空かどうか調べる
set.remove(obj)配列からオブジェクト obj を削除
set.size())配列の個数

セット(TreeSet)

使用方法は HashSet と同じです。要素が自動的にソートされる点が TreeSetの特徴です。
TreeSet set = new TreeSet();
set.add("X");
set.add("D");
set.add("A");
set.add("U");

Iterator it = set.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}