プログラミング中、あった問題 13

JSPArraylistをもらう方法
ArrayList<String> todo_text1 = (ArrayList<String>)request.getAttribute("todo_text1");

警告があるですが、使えます。
警告:unchecked cast from object to Arraylist<String>

・ループ
問題:複数のArraylistが一つループにプリントしたい場合は、どちら方法は一番いいです?
1.愚直な方法(For)
for(int i = 0; i < list.size(); ++i){
    String s = list.get(i);
    System.out.println(s);
}

2.Iteratorイテレータ)(For)
for(Iterator<String>itr = list.iterator(); itr.hasNext();){
    String s = itr.next();
    System.out.println(s);
}

3.拡張for文
for(String s : list){
    System.out.println(s);
}

4.ラムダ
list.forEach(s -> {
    System.out.println(s);
});

5. ラムダだが、メソッド参照
list.forEach(System.out::println);

6.愚直な方法(while)
int j = 0;
while (list.size() > j) {
    System.out.println(list.get(j));
    j++;
}
7.Iteratorイテレータ)(while)
Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
}


自分の結論:3番の方法を使うなら、一つArraylistしか使えません。イテレータなら、同じ問題だと思います。1番と6番なら、簡単ですが、ループの中にコードがわかりやすいと思います。
(3番)
int i = 0;
for(String result : list01){
    System.out.println(result);            <-list02と使い方は違います。。
    System.out.println(list02.get(i));
    i++;
}
(6番)
int i = 0;
while(list01.size() > i){
    System.out.println(list01.get(i));    <-list02と使い方は同じです。
    System.out.println(list02.get(i));
    i++;
}