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

Java如何从嵌套列表(列表的列表)中提取各子列表的首个元素

问题原因

你的代码运行失败主要有三个问题:

  • forEach 方法无返回值(返回void),无法作为参数传入ArrayList的构造方法
  • 你的泛型声明存在矛盾:声明List<ListView>但实际存储的是字符串类型元素,按你实际存储的内容应该修正为List<List<String>>
  • Java List没有getFirstValue()这个方法,通用获取第一个元素的方法是get(0),Java 21及以上版本可以用更直观的getFirst()方法

实现方案

方案1:Stream流写法(Java 8及以上通用,代码简洁)

// 修正嵌套列表的泛型声明,匹配你存储字符串的实际场景
private List<List<String>> listView;
// 列表初始化逻辑不变
listView = List.of(firstlist(), secondlist(), thirdlist());

// 提取所有子列表第一个元素存入ArrayList
List<String> listViewTitle = listView.stream()
        .map(sublist -> sublist.get(0))
        .collect(Collectors.toCollection(ArrayList::new));

方案2:普通for循环写法(逻辑直观,易理解)

List<String> listViewTitle = new ArrayList<>();
for (List<String> sublist : listView) {
    // 可选增加非空校验,避免子列表为空/为null时抛出异常
    if (sublist != null && !sublist.isEmpty()) {
        listViewTitle.add(sublist.get(0));
    }
}

两种方案最终得到的listViewTitle里就会按顺序存入mango、book、van三个元素。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:24:02