You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java二维ArrayList中for-each循环的使用问题及解决方法

解决二维ArrayList的for-each循环泛型问题

问题出在你外部for-each循环里的ArrayList s是原始类型(未指定泛型参数),编译器无法确定s中的元素类型,因此内部循环只能用Object来声明变量。

要修复这个问题,只需要在外部循环中明确指定泛型类型即可:

// 修改后的嵌套for-each循环
for (ArrayList<String> s : shoppingList){   
    for (String t : s)
    {
        System.out.println(t);
    } 
}

额外优化建议

初始化ArrayList时建议使用菱形语法(Java 7及以上支持),避免原始类型带来的警告和类型安全问题,比如:

ArrayList<String> bakeryList = new ArrayList<>();
ArrayList<ArrayList<String>> shoppingList = new ArrayList<>();

如果使用Java 10及以上版本,还可以用var关键字让编译器自动推断类型,代码更简洁:

for (var s : shoppingList){   
    for (var t : s)
    {
        System.out.println(t);
    } 
}

内容的提问来源于stack exchange,提问作者jerseypizza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 05:07:47