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

ArrayList<Integer>添加整数后测试失败:预期size为7实际为14求助

为什么我的ArrayList大小变成14而不是7?

兄弟,你猜的完全没错!问题肯定出在你添加元素的逻辑上——你大概率是把每个两位数的数字拆成了单个字符转成int添加进去,比如把10拆成1和0分别调用add(),这样7个两位数就会变成14个元素,正好对应测试提示的expected:<7> but was:<14>。

举个错误的例子(你可能正在这么写)

比如你是通过字符串处理数字,不小心遍历了每个字符:

ArrayList<Integer> lotteryNumbers = new ArrayList<>();
// 假设这是你要添加的7个数字的字符串形式
String[] targetNumbers = {"11", "22", "33", "14", "25", "36", "17"};

for (String numStr : targetNumbers) {
    // 错误:把每个数字的字符拆分开,逐个添加
    for (char c : numStr.toCharArray()) {
        lotteryNumbers.add(Integer.parseInt(String.valueOf(c)));
    }
}

这段代码执行后,列表里会有14个元素(每个两位数拆成两个单数字),完全符合测试报错的情况。

正确的写法应该是这样

直接把整个字符串转成完整的Integer,一次添加一个元素:

ArrayList<Integer> lotteryNumbers = new ArrayList<>();
String[] targetNumbers = {"11", "22", "33", "14", "25", "36", "17"};

for (String numStr : targetNumbers) {
    // 正确:把整个字符串转成一个整数添加
    lotteryNumbers.add(Integer.parseInt(numStr));
}

如果是手动逐个添加的话,别拆分数字,直接加完整数值:

// 正确的手动添加
lotteryNumbers.add(11);
lotteryNumbers.add(22);
lotteryNumbers.add(33);
// ... 剩下的4个数字同理

关键排查点

重点检查你的drawNumbers方法,看看是不是在生成或解析数字的时候,误将单个数字字符当成了独立的列表元素,而不是把完整的1-39之间的整数作为一个整体添加进去。只要把这个逻辑改过来,列表的size就会变成7,测试就能通过了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:19:55