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

Java中遍历一个集合时获取另一集合同下标值的实现方法

Java同索引遍历双列表实现方案

完全可以实现,首先要确保两个列表长度一致,否则会出现索引越界异常。以下是几种简洁优雅的实现方式:

1. 基础索引for循环(最直观,可读性最高)

// 先执行长度校验
if (responseList.size() != requestList.size()) {
    throw new IllegalArgumentException("responseList与requestList长度不匹配");
}
for (int i = 0; i < responseList.size(); i++) {
    responseList.get(i).setPrimarySkills(requestList.get(i).getPrimarySkills());
}

2. 函数式写法(适合JDK8+环境)

if (responseList.size() != requestList.size()) {
    throw new IllegalArgumentException("responseList与requestList长度不匹配");
}
IntStream.range(0, responseList.size())
    .forEach(i -> responseList.get(i).setPrimarySkills(requestList.get(i).getPrimarySkills()));

3. 迭代器写法(兼容不支持随机访问的List实现)

如果你的列表是LinkedList这类不支持O(1)索引查询的实现,用迭代器可以避免每次查询索引带来的性能损耗:

Iterator<Response> respIterator = responseList.iterator();
Iterator<Request> reqIterator = requestList.iterator();

while (respIterator.hasNext() && reqIterator.hasNext()) {
    respIterator.next().setPrimarySkills(reqIterator.next().getPrimarySkills());
}

// 可选校验,确保两个列表长度一致
if (respIterator.hasNext() || reqIterator.hasNext()) {
    throw new IllegalArgumentException("responseList与requestList长度不匹配");
}

注意事项

  • 所有实现方案都建议先做长度校验,避免业务逻辑出现异常
  • 如果使用索引遍历方式,优先选择ArrayList等支持随机访问的List实现,性能更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:21:01