[Java] 30 ネストしたArrayListの型指定

前回の続きです。

前のコードでは入れ子になっているArrayListの型指定をStringにしたため、その後リストとしての処理ができませんでした。

StringをArrayList<String>に修正し、変数を引き継いだ第3メソッドでも要素抽出などの処理ができるようにしました。

自分的にはネストしたリストは多用しているためArrayList<ArrayList<String>>といった少しややこしい型指定を今後も使うつもりですが、ネットではギーク向け英語サイトにしか情報がありませんでした。推奨していない、不具合を起こしやすいなど何かあるのでしょうか。

<importは省略>

public class AppTest {
    static String url = "jdbc:mysql://localhost:3306";
    static String user = "ユーザ名";
    static String password = "パスワード";

    public static void main(String args[]) {
        String ID = IDSearch();
        ArrayList<ArrayList<String>> raceList = raceSearch(ID);
        raceSearch2(raceList);}

    <第1メソッドは省略>
    
    // 第2メソッド
    public static ArrayList<ArrayList<String>> raceSearch(String ID) {
        System.out.println("第2メソッド内出力 " + ID);

    <中略>

    // 第3メソッド
    public static void raceSearch2(ArrayList<ArrayList<String>> raceList) {
        System.out.println("第3メソッド内出力 " + raceList);

        ArrayList<String> raceIDList = new ArrayList<String>();

        for (int i = 0;i < raceList.size();i++){
            ArrayList<String> raceListChild = raceList.get(i);
            String raceID = raceListChild.get(12);
            raceIDList.add(raceID);}

        System.out.println(raceIDList);}}
--------------------------------------------------

出力
--------------------------------------------------
競走馬名を入力してください
シャフリヤール

<中略>

第3メソッド内出力 [[1, 7, 13, 55.0, 福永祐一, 1:49.9, 6-4, 34.6, 2.3, 1, 450(0), 700.0, r202008040605], [3, 8, 11, 56.0, 福永祐一, 1:48.0, 7-8-8, 33.4, 4.9, 2, 448(-2), 956.1, r202105010611], [1, 6, 6, 56.0, 川田将雅, 1:43.9, 4-4, 34.1, 2.9, 2, 448(0), 3,833.6, r202109020111]]
[r202008040605, r202105010611, r202109020111]