将条件语句与 ArrayList.size() 一起使用



我尝试使用 if-else 语句作为将元素添加到数组列表的条件。但是,它不断在条件之上添加另一个元素。

private ArrayList<Musician> songMusicians;
this.songMusicians = new ArrayList<>();
Musician musician = new Musician(name);
if (songMusicians.size() < 6) { //same output for (songMusicians.size() <= 5)
songMusicians.add(musician);
} else {
System.out.println("You can't have more than 5 musicians per song");
}

因此,它没有向数组列表中添加 5 个元素 songMusicians,而是添加了 6 个元素。

假设列表中有 5 个元素,当你说< 6时,它会返回true然后你再添加一个,使列表中有 6 个元素。

只需将其更改为songMusicians.size() < 5.

songMusicians.size(( <5 在 if 条件中使用此选项。

根据您的代码(i<6(,循环将运行 6 次,即 0-1-2-3-4-5,即使您这样做 (i<=5(,循环仍将运行 6 次,即 0-1-2-3-4-5。您应该编写 (i<=4( 或 (i<5( 以使循环运行 5 次,即 0-1-2-3-4 –

最新更新