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

Java读取txt投注数据存入Bet类ArrayList无整数值问题排查

问题原因

  • 你混淆了ArrayList的初始容量和实际元素个数:new ArrayList(12)仅指定底层数组的初始长度,刚创建的ArrayList没有任何元素,size()方法返回值为0,因此你写的存值循环条件从一开始就不满足,循环体完全不会执行,没有任何数据存入arrayBets。
  • 你误用了set方法存入新元素:set方法仅用于替换已存在的指定索引位置的元素,空ArrayList调用set会直接抛出索引越界异常,新增元素需要使用add方法。

修正后的读取逻辑

while((line = br.readLine()) != null) {
    Bet currentBet = new Bet();
    String[] strings = line.split("\\s+");
    currentBet.setName(strings[0]);
    // 按拆分后的字符串数组长度遍历数字部分
    for(int i = 1; i < strings.length; i++) {
        int num = Integer.parseInt(strings[i]);
        // 用add方法添加元素到ArrayList
        currentBet.arrayBets.add(num);
    }
    arrayTotalBets.add(currentBet);
    j++;
}

额外优化建议

  • 给ArrayList加上泛型约束,修改定义为public ArrayList<Integer> arrayBets = new ArrayList<>(12);,避免类型转换风险
  • 尽量不要用public修饰类属性,建议将arrayBets改为private,提供对应的get/set方法做封装访问,符合面向对象规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:54:08