このブログを検索

2011年1月12日水曜日

[Doja]iアプリ開発でArrayList

Dojaでiアプリを開発しているとArrayListが使えないことに気付く。
(あれ?つかえたっけ?)

そこでそれに代わるのがVectorである。

ArrayListはまぁJavaでよく使われるリストです。
リストとは 簡単に追加削除ができる可変長配列的な?
普通の配列は最初に定義したサイズになり、後々中身が多かったり少なかったり、はたまた追加したかったり削除したかったりすると、サイズを定義しなおしてコピーしてと手間がかかるがリストならそれを自動でやってくれちゃうってことですな。
そんな便利なArrayListがDojaでは使えないので代わりに同じような使い方ができるVectorを使います。
VectorとArrayListの違いは型を固定しないことで、ArrayList<クラス名>と型を指定せずなんでも突っ込めちゃう代わりに取り出すときはキャストしないといけません。





簡単に使い方紹介


Vector vector = new Vector();
String str = {"test1","test2","test3","test4","test5","test6"};
for(int i=0;i<str.length;i++)
        vec.addElement(str[i]);
for(int i=0;i<vector.size();i++)
        System.out.println( i + "番目のVectorは" + (String)vector.elementAt(i));

とするとVectorにStringが配列のようにたくさん入っている感じになるわけです。
注意点は最後の行の(String)vector.elementAt(i)で、ちゃんとキャストしないとだめです。
とくにインスタンスをぶち込んだ場合は
((クラス名)vector.elementAt(i))  としないと内部メソッド?が使えません。
たとえばStringのcharAt(i)を使いたいときは
(String)vector.elementAt(i).charAt(i); ではなく
((String)vector.elementAt(i)).charAt(i); にしないといけません。

なんとまぁ括弧の多いことめんどくさいこと。
まぁでもVector便利なんで使ってくださいVector