import java.util.ArrayList;
public class Collection {
public static void main(String[] args) {
// <>の中は ArrayList に入れる要素の型
ArrayList str = new ArrayList<>();
// 何も入ってなくてもメソッドは使える
System.out.println(str.size());
System.out.println(str.contains("abc"));
// でも入っていない要素を指定するとダメ!エラー
// System.out.println(str.remove(0));
// 要素を追加していく。追加した順がindex順
str.add("aaa");
str.add("bbb");
str.add("ccc");
str.add("ddd");
str.add("eee");
System.out.println(str.size());
// 中身を出力したいだけならこれでOK
System.out.println(str);
// index 2 に挿入。配列と同じく index は 0 からなので"fff"は3個目の要素になる
str.add(2,"fff");
// index 4 を上書き
str.set(4,"ggg");
System.out.println(str);
// "ccc"があるか確認して、あったら消す
String strccc = "ccc";
if(str.contains(strccc)) {
// indexOf()で index を取得して remove() で削除
str.remove(str.indexOf(strccc));
}
System.out.println("--- cccを削除 ---");
System.out.println(str);
// ランダムに並べ替える
for(int i = str.size(); i > -1; i--) {
// 乱数取得
int r = (int)(Math.random() * i);
// ランダムで選んだ要素を後ろに
str.add(str.get(r));
// 元の要素は削除
str.remove(r);
}
System.out.println("--- 並べ替え ---");
System.out.println(str);
str.clear();
// 中身が空でもエラーにならない
System.out.println("--- 空っぽ ---");
System.out.println("isEmpty():" + str.isEmpty());
System.out.println(str);
// インスタンスをぶち込む
System.out.println("--- インスタンス ---");
ArrayList ar = new ArrayList<>();
// Arr を5個加える
for(int i = 0; i < 5; i++) ar.add(new Arr());
// すべてのインスタンスの num を -1 していき num < 1 なら削除していく
while(ar.size() > 0) {
for(int i = 0; i < ar.size(); i++) {
// ar.get(i) は Arr のインスタンスなので、その後ろに .num でフィールドをいじれる
ar.get(i).num--;
if(ar.get(i).num < 1) {
// num < 1 なら削除
ar.remove(i);
// 削除されて次の要素が前へ1つずつずれるので i を -1 している
i--;
}
}
for(int i = 0; i < ar.size(); i++) {
System.out.print(ar.get(i).num + " ");
}
System.out.println();
}
}
}
class Arr {
int num = (int)(Math.random() * 10) + 1;
}