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

定义含多个ArrayList的二维ArrayList时出现参数数量错误问题

解决Java中二维ArrayList定义的参数数量错误问题

你这段代码报错的核心原因是Java的ArrayList只能接受一个泛型类型参数,你给它传了三个ArrayList<String>作为泛型参数,这完全不符合Java泛型的语法规则呀~

要实现你想要的「主ArrayList容纳多个子ArrayList」的结构,正确的泛型写法应该是把主ArrayList的元素类型定义为ArrayList<String>,也就是:

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

如果是Java 7及以上版本,还可以用菱形语法简化,编译器会自动帮你推断泛型类型,写起来更清爽:

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

接下来给你举个具体的例子,如何把你提到的[parking]、[bike]、[disability]这些子列表加入主列表:

// 先创建各个子列表
ArrayList<String> parkingFacility = new ArrayList<>();
parkingFacility.add("parking"); // 这里还可以添加更多和停车设施相关的元素,比如"covered"之类的

ArrayList<String> bikeFacility = new ArrayList<>();
bikeFacility.add("bike");

ArrayList<String> disabilityFacility = new ArrayList<>();
disabilityFacility.add("disability");

// 把所有子列表添加到主列表中
newlist.add(parkingFacility);
newlist.add(bikeFacility);
newlist.add(disabilityFacility);

要是你的子列表里只有单个元素,Java 9及以上版本还能这么写,更简洁:

newlist.add(new ArrayList<>(List.of("parking")));
newlist.add(new ArrayList<>(List.of("bike")));
newlist.add(new ArrayList<>(List.of("disability")));

说白了,二维ArrayList就是「元素本身是ArrayList的ArrayList」,所以外层ArrayList的泛型参数只需要指定内层列表的类型就行,不用传多个参数~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:50:21