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

如何从List的指定索引位置开始反向遍历得到符合预期顺序的新列表

问题原因分析
  • 初始循环值错误:你以newPlayerList.size()作为j的初始值,第一次取模后得到索引0,直接跳过了目标起始位置maxIndex
  • 遍历方向和终止条件不符合需求:现有循环只会遍历从列表末尾到maxIndex区间的元素,无法实现从maxIndex反向走到列表头后,继续从列表末尾往前补全剩余元素的逻辑
正确实现方案

你的需求本质是从指定索引开始,逆时针(反向)循环遍历整个列表,可以按以下逻辑实现:

int size = newPlayerList.size();
// 一共取size个元素,遍历完整个列表
for(int i = 0; i < size; i++) {
    // 计算当前要取的索引:加size是为了避免负数,再模size得到合法索引
    int currentIndex = (maxIndex - i + size) % size;
    newPlayerList2.add(newPlayerList.get(currentIndex));
}

用你给出的示例验证:列表[4,5,8,7],maxIndex=2,size=4

  • i=0:(2-0+4)%4=2 → 取元素8
  • i=1:(2-1+4)%4=1 → 取元素5
  • i=2:(2-2+4)%4=0 → 取元素4
  • i=3:(2-3+4)%4=3 → 取元素7
    最终得到的列表就是[8,5,4,7],完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:18:02