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

如何通过循环批量添加命名相似的变量到ArrayList,避免逐行操作

解决方法

方案1:数组+循环(最简洁易读)

先把B1到B8的变量值存入int数组,再通过循环遍历数组,批量将元素添加到ArrayList中。同时修正原代码笔误:new ArrList需改为new ArrayList。

修改后的完整代码:

import java.util.ArrayList;

class Ejecutar {

    private int B1 = 0;
    private int B2 = 2;
    private int B3 = 3;
    private int B4 = 8;
    private int B5 = 9;
    private int B6 = 11;
    private int B7 = 12;
    private int B8 = 17;

    private ArrayList<Integer> arreglo_posiciones = new ArrayList<Integer>();

    public Ejecutar() {
        
    }

    public void cargarArregloPosiciones() { 
        // 把所有变量存入数组
        int[] valores = {B1, B2, B3, B4, B5, B6, B7, B8};
        // 循环遍历数组,批量添加到集合
        for (int valor : valores) {
            arreglo_posiciones.add(valor);
        }
    }
}

方案2:直接初始化集合(无需单独循环)

如果需求是一次性初始化集合,可通过IntStream处理基本类型自动装箱问题,直接完成集合初始化:

import java.util.ArrayList;
import java.util.stream.IntStream;

class Ejecutar {

    private int B1 = 0;
    private int B2 = 2;
    private int B3 = 3;
    private int B4 = 8;
    private int B5 = 9;
    private int B6 = 11;
    private int B7 = 12;
    private int B8 = 17;

    // 直接初始化集合,无需单独调用加载方法
    private ArrayList<Integer> arreglo_posiciones = 
        new ArrayList<>(IntStream.of(B1, B2, B3, B4, B5, B6, B7, B8).boxed().toList());

    public Ejecutar() {
        
    }
}

不推荐方案:反射

虽然可以通过反射遍历类字段批量获取值,但代码复杂,且易因字段名变更引发错误,非特殊需求不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:45:46