Java 如何在ArrayList中多次添加同一元素

Java 如何在ArrayList中多次添加同一元素,java,Java,我想为我的arraylist提供一个故障保护功能,如果它没有某个大小,我想将所有值设置为0,直到某个索引。然而,我找不到任何允许我这样做的东西 到目前为止,我已经“粗暴地强迫”了它,但我希望我的最低限度越来越高,这是不可持续的: if(challenges.size() < 4){ challenges.clear(); challenges.add(0, 0); challenges.add(1, 0); challenges.add(2, 0);

我想为我的arraylist提供一个故障保护功能,如果它没有某个大小,我想将所有值设置为0,直到某个索引。然而,我找不到任何允许我这样做的东西

到目前为止,我已经“粗暴地强迫”了它,但我希望我的最低限度越来越高,这是不可持续的:

if(challenges.size() < 4){
    challenges.clear();
    challenges.add(0, 0);
    challenges.add(1, 0);
    challenges.add(2, 0);
    challenges.add(3, 0);
}
if(challenges.size()<4){
挑战;
挑战。添加(0,0);
增加(1,0);
增加(2,0);
增加(3,0);
}
intstartindex=0,endIndex=4;
if(challenges.size()challenges.add(0));
}
如果重新分配正常,则这可能更有效:-

int startIndex = 0, endIndex = 4;
if (challenges.size() < endIndex) {
    challenges = IntStream.range(startIndex, endIndex)
            .mapToObj(i -> 0)
            .collect(Collectors.toList());
}
intstartindex=0,endIndex=4;
if(challenges.size()0)
.collect(Collectors.toList());
}
最好的方法是使用好的旧for循环:-

int endIndex = 4;
if (challenges.size() < endIndex) {
    challenges.clear();
    for (int i = 0; i < endIndex; i++) {
        challenges.add(0);
    }
}
int-endIndex=4;
if(challenges.size()
A
用于循环和列表。设置(i,0)
?@EJoshuaS不,它真的不是。这是一个关于我能用数组做什么的问题,这是非常清楚的。不知道你怎么会错过。不过用代码更新了它。没必要大惊小怪。我工作了一整天,不想打开笔记本电脑,所以我用手机发了邮件。从我的手机上格式化要困难得多,所以我认为代码不是必需的。@slider想来一定是太累了!谢谢,这就是解决方案。
challenges.addAll(Collections.nCopies(4,0))
int endIndex = 4;
if (challenges.size() < endIndex) {
    challenges.clear();
    for (int i = 0; i < endIndex; i++) {
        challenges.add(0);
    }
}