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

如何从嵌套的ArrayList(records)中访问内层record的第一个元素?

嘿,我来帮你搞定这个问题!要从外层的records列表里访问内层record的第一个元素,主要有两种常用的实现方式,根据你的实际需求选择就行:

方式1:遍历所有内层record的第一个元素

如果你需要把所有内层列表的第一个元素都取出来,可以用循环遍历外层的records。因为你的代码里没有用泛型,所以取出的每个record需要先强转为List类型,再调用get(0)获取第一个元素:

// 遍历所有内层record,取出第一个元素
for (Object obj : records) {
    List record = (List) obj;
    String firstElement = (String) record.get(0); // 对应原代码里的WHLO字段值
    // 这里可以根据需求处理这个元素,比如打印、存入新列表等
    System.out.println(firstElement);
}

如果是Java 5及以上版本,更推荐给列表加上泛型声明,这样就不用强转,代码更安全清晰:

// 声明时指定泛型,避免raw type
List<List<String>> records = new ArrayList<>();
// ... 原有的数据库查询逻辑不变,泛型会自动适配元素类型

// 遍历的时候直接用泛型类型,无需强转
for (List<String> record : records) {
    String firstElement = record.get(0);
    System.out.println(firstElement);
}

也可以用Java 8+的Stream API来简化操作,快速提取所有第一个元素到新列表:

// 无泛型时的写法
List<String> allFirstElements = records.stream()
        .map(record -> (String) record.get(0))
        .collect(Collectors.toList());

// 有泛型时的简洁写法
List<String> allFirstElements = records.stream()
        .map(List::get)
        .collect(Collectors.toList());

方式2:获取指定位置的内层record的第一个元素

如果你只需要获取某一个特定位置的内层列表的第一个元素,直接通过索引访问即可(注意列表索引从0开始):

// 先判断列表非空,避免索引越界
if (!records.isEmpty()) {
    List targetRecord = (List) records.get(0); // 获取第1个内层record
    String firstElement = (String) targetRecord.get(0);
    System.out.println(firstElement);
}

加上泛型后代码会更简洁直观:

if (!records.isEmpty()) {
    String firstElement = records.get(0).get(0);
    System.out.println(firstElement);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:33:13