【Java】 配列を操作する | ArrayListの使い方ガイド

# はじめに
この記事では、JavaのArrayListについて初心者向けに解説します。
ArrayListは要素を動的に追加・削除できるデータ構造であり、配列と比較して柔軟な操作が可能です。以下では、ArrayListの基本的な使い方と代表的な使用例を紹介します。

## ArrayListの基本的な使い方
まずはじめに、ArrayListを使用するためにはjava.utilパッケージをインポートする必要があります。以下に、ArrayListを使った基本的なコード例を示します。

```java
import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        // ArrayListの作成
        //ArrayListを使う場合、Stringなどのデータ形式は
        //尖括弧（<>）で囲む必要があります
        //囲まないとコンパイルエラーが発生します
        //左辺で<String>を宣言することで、右辺の<>についてはStringが代入されます
        ArrayList<String> list = new ArrayList<String>();
       

        // 要素の追加
        list.add("りんご");
        list.add("ばなな");
        list.add("オレンジ");

        // 要素の取得
        String firstElement = list.get(0);
        System.out.println("最初の要素: " + firstElement);

        // 要素の削除
        list.remove(1);
        System.out.println("削除後の要素数: " + list.size());
    }
}

```

上記のコードでは、以下のような操作が行われています。

ArrayListの作成: ArrayList<String> list = new ArrayList<>();として、ArrayListを作成しています。
要素の追加: list.add("りんご");のようにして、要素を追加しています。
要素の取得: list.get(0);として、指定したインデックスの要素を取得しています。
要素の削除: list.remove(1);として、指定したインデックスの要素を削除しています。
上記のコードを実行すると、以下のような結果が得られます。

```makefile
最初の要素: りんご
削除後の要素数: 2
```
### 値を一つ取り出す
```java
import java.util.ArrayList;

// 次のインポートが必要
import java.util.List;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");

        // ArrayListで配列を作成した場合、
        // 中身を取得するにはgetメソッドを使用しなければならない
        // （もしくはforループで別の変数に入れ替える）
        String fruit = list.get(1);
        System.out.println(fruit); // 結果: banana
    }
}
```

ArrayListを使用せずに配列を作成した場合は
'list[1]'にて値を取得できますが

ArrayListで配列を作成した場合は
getメソッドを使用し引数に配列の番号を指定して値を取得します

get()メソッドを使用するためには、次のパッケージのインポートが必要です
`java.util.List;`

### for文による値の操作

```java
import java.util.ArrayList;
import java.util.List;

public class StringListExample {
    public static void main(String[] args) {
        ArrayList<String> stringList = new ArrayList<>();

        // 文字列の追加
        stringList.add("Java");
        stringList.add("Python");
        stringList.add("JavaScript");

        // 文字列の表示
        for (int i = 0; i < stringList.size(); i++) {
            System.out.println(stringList.get(i));
        }
    }
}

```
上記のコードでは、文字列のリストを作成し、要素を追加して表示しています。
for文により一度別の変数に値を代入する場合はgetメソッドは不要です。
実行結果は以下のようになります。
```makefile
Java
Python
JavaScript
```

### 拡張forループによる操作

```java
import java.util.ArrayList;
import java.util.List;


public class StringListExample {
    public static void main(String[] args) {
        ArrayList<String> stringList = new ArrayList<>();

        // 文字列の追加
        stringList.add("Java");
        stringList.add("Python");
        stringList.add("JavaScript");

        // 文字列の表示（拡張forループ）
        for (String list : stringList) {
            System.out.println(list);
        }

        //　拡張forループによる値の操作
        int index = 0;
        for (String list : stringList) {
            stringList.set(index, list + "言語");
            index++;
        }

        // forEachメソッドによる出力
            stringList.forEach(list -> {
                System.out.println(list);
            });
}

```

拡張forループで値を変数に代入する場合は
getメソッドは不要です



### 数値のリストの操作

```java
import java.util.ArrayList;
import java.util.List;


public class NumberListExample {
    public static void main(String[] args) {
        ArrayList<Integer> numberList = new ArrayList<>();

        // 数値の追加
        numberList.add(10);
        numberList.add(20);
        numberList.add(30);

        // 合計値の計算
        int sum = 0;
        for (int num : numberList) {
            sum += num;
        }

        System.out.println("合計値: " + sum);
    }
}
```
上記のコードを実行すると、以下のような結果が得られます。
```makefile
合計値: 60
```

このコードでは、ArrayListを使用して数値のリストを作成し、要素を追加しています。その後、拡張forループを使用してリストの要素を取り出し、合計値を計算して表示しています。

### 配列の要素数を取得し操作したい

```java
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // ArrayListを作成し、要素を追加する
        List<String> array = new ArrayList<>();
        array.add("Apple");
        array.add("Banana");
        array.add("Orange");

        // 最後の要素を削除する
        int lastIndex = array.size() - 1;
        if (lastIndex >= 0) {
            array.remove(lastIndex);
        }

        // 結果を出力する
        System.out.println(array);  // 出力: [Apple, Banana]
    }
}

```



## まとめ

ArrayListは配列を操作するクラスであり、柔軟な要素の追加や削除が可能なため、データの動的な管理や操作に便利です。