java学習 はじめてのArrayList

ArrayList使ってみた。基本型はラッパーオブジェクトを格納して、メソッド呼び出しでは引数をオートボクシングといって自動でラッパーオブジェクトにしてくれるらしい。

// ArrayListはサイズが拡張可能な配列型データ構造
// C++STLのvectorに似たデータ構造
// 参考: http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.html

import java.util.ArrayList;
import java.util.Arrays;

public class UseArrayList {
	public static void main(String[] args) {
		// 基本型はラッパークラスを指定する
		ArrayList<Integer> lst = new ArrayList<Integer>();

		// .addで要素を追加
		for (int i = 0; i < 10; i++) {
			// lst.add(new Integer(i));
			// lst.add(Integer.valueOf(i));
			lst.add(i); // auto boxing; ラッパークラスに自動で入れてくれる
		}
		// .getで要素を取得
		for (int i = 0; i < lst.size(); i++)
			System.out.println(lst.get(i));

		// .contains(element)で要素が含まれているかどうか
		System.out.println(lst.contains(9));
		System.out.println(lst.contains(10));

		// Arrayにする
		Object[] a = lst.toArray();
		System.out.println(Arrays.toString(a));

		// .set(index, element)で要素を代入
		// .size()で要素数を得る
		Integer n = new Integer(0);
		for (int i = 0; i < lst.size() / 2; i++) {
			// swap [i] [lst.size()-i-1]
			n = lst.get(i);
			lst.set(i, lst.get(lst.size() - i - 1));
			lst.set(lst.size() - i - 1, n);
		}
		// .toStringがオーバーライドされている
		System.out.println(lst);
		// .indexOf(element) 要素を含むインデクスを求める
		System.out.println(lst.indexOf(2));
		// 存在しない場合は-1
		System.out.println(lst.indexOf(10));

		System.out.println(lst);
		// .removeで要素を削除
		lst.remove(2);
		System.out.println(lst);
	}
}