ArrayListなるものをメモ。
複数オブジェクトを動的に格納したい場合にいいようです。
- 使用するには、import java.util.ArrayList
が必要。
- Primitive TypeのArrayListは作れない。int
とか。クラスじゃないから。Stringは作れるのは、Stringは根本的にはクラスだから。
- ArrayListのオブジェクトを生成する必要がある。
- いろんな便利な関数が用意されている。add
とか。
import java.util.ArrayList; public class arraylist { public static void main(String[ ] args) { ArrayList<String> test = new ArrayList<String>(); test.add("a"); test.add("b"); test.add("c"); test.add("d"); test.remove("d"); System.out.println(test); } }
4/14 追記
ArrayList<String>();
のところ、不思議に思いません?実はこれclassらしいです。
なので、引数無しのコンストラクタを呼び出している模様。
完全にcalssのobejctを作成していると思えばよいですね.
arraylistのサイズを知る
test.size()
arraylistに値をセットする
test.set(position, value)
arraylistから値を取り出す
test.get(position)
arraylistに対象の値があるかどうか探す
test.contains(String)
これはbooleanが返る。Stringの値があればtrue.
test.indexOf(String)
これはarraylistのindex値が返る。-1の場合は無いよ〜ってこと
arraylistのコピー
ArrayList<String> newArray = new ArrayList<String> ();
いま、testというarraylistがある状態で、newArrayにコピーする方法を3つメモ
1. newArray.addAll(test)
を使う
2. testを元にnewArrayを作成する
ArrayList<String> newArray = new ArrayList<String> (test);
3. 普通のArrayを作成してからarraylistにコンバートする
String[] tmpArray = new String[test.size()];
newArray = test.toArray(tmpArray);
上記は、とりあえず簡単にするためtest
をそのまま書いていますが、実際はarraylistをいじるclassがあったりして(addとかremoveとかしているclass)
そこにarraylistのgetterを作って、それらをcallして呼ぶ方法がメジャーかもしれません