動的配列(リスト・セット)
動的配列(リスト・セット)
サイズが不明な動的配列を使用する場合は以下のオブジェクトを使用します。
クラス | 説明 |
---|
ArrayList | 動的配列。 |
LinkedList | ArrayListより挿入・削除が高速。 |
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());
}