试图计算平均值,但得到错误:java.lang.IndexOutOfBoundsException:索引:1,大小:1
我试图创建一个函数来计算平均值,但我一直收到一条错误消息,这真的令人沮丧,因为我知道这是一个非常简单的函数。我一直收到错误java.lang.IndexOutOfBoundsException,因此我知道它与索引错误有关,但我无法找出它试图计算平均值,但得到错误:java.lang.IndexOutOfBoundsException:索引:1,大小:1,java,Java,我试图创建一个函数来计算平均值,但我一直收到一条错误消息,这真的令人沮丧,因为我知道这是一个非常简单的函数。我一直收到错误java.lang.IndexOutOfBoundsException,因此我知道它与索引错误有关,但我无法找出它 public int berekenGemiddeldeScore(){ int result = 0; int i = 0; if (deelnemers.size() == 1){ return deelneme
public int berekenGemiddeldeScore(){
int result = 0;
int i = 0;
if (deelnemers.size() == 1){
return deelnemers.get(1).getScore();
}
while (i< deelnemers.size() -1 ){
result+=deelnemers.get(i).getScore();
i++;
}
return result/deelnemers.size();
}
public int-berekengediddeldescore(){
int结果=0;
int i=0;
如果(deelnemers.size()==1){
返回deelnemers.get(1.getScore();
}
而(i
在Java和许多其他语言中,第一个索引是0
,而不是1
。在您的情况下,集合的大小为1,因此您可以使用get
访问的唯一索引是0
:deelnemers.get(0)
如果尝试使用集合中不存在的索引进行访问,则会引发类型为
IndexOutOfBoundsException
的异常。在Java和许多其他语言中,第一个索引是0
,而不是1
。在您的情况下,集合的大小为1,因此您可以使用get
访问的唯一索引是0
:deelnemers.get(0)
如果尝试使用集合中不存在的索引进行访问,则会引发类型为
IndexOutOfBoundsException
的异常。将代码替换为此索引-
public int berekenGemiddeldeScore(){
int result = 0;
int i = 0;
if (deelnemers.size() == 1){
return deelnemers.get(0).getScore();
}
while (i < deelnemers.size()){
result+=deelnemers.get(i).getScore();
i++;
}
return result/deelnemers.size();
}
public int-berekengediddeldescore(){
int结果=0;
int i=0;
如果(deelnemers.size()==1){
返回deelnemers.get(0.getScore();
}
而(i
用此代码替换您的代码-
public int berekenGemiddeldeScore(){
int result = 0;
int i = 0;
if (deelnemers.size() == 1){
return deelnemers.get(0).getScore();
}
while (i < deelnemers.size()){
result+=deelnemers.get(i).getScore();
i++;
}
return result/deelnemers.size();
}
public int-berekengediddeldescore(){
int结果=0;
int i=0;
如果(deelnemers.size()==1){
返回deelnemers.get(0.getScore();
}
而(i
如果数组只有一个项,“如果(deelnemers.size()==1)
”数组的索引为0:
返回deelnemers.get(0.getScore()
如果数组只有一个项,“如果(deelnemers.size()==1)
”数组的索引为0:
返回deelnemers.get(0.getScore()代码>这就是问题所在
if (deelnemers.size() == 1) {
return deelnemers.get(1).getScore();
}
将返回语句替换为
return deelnemers.get(0).getScore();
编辑
如果列表大小为1,则没有理由出现特殊情况。
考虑一下这种方法
public int berekenGemiddeldeScore() {
if (deelnemers.size() == 0) {
return 0;
}
int result = 0;
for (Score score : deelnemers) {
result += score.getScore();
}
return result / deelnemers.size();
}
这就是问题所在
if (deelnemers.size() == 1) {
return deelnemers.get(1).getScore();
}
将返回语句替换为
return deelnemers.get(0).getScore();
编辑
如果列表大小为1,则没有理由出现特殊情况。
考虑一下这种方法
public int berekenGemiddeldeScore() {
if (deelnemers.size() == 0) {
return 0;
}
int result = 0;
for (Score score : deelnemers) {
result += score.getScore();
}
return result / deelnemers.size();
}
你可以粘贴的任何一段代码…显示你的代码。是的,很抱歉lol我在完成我的问题之前不小心输入了。if(deelnemers.size()==1){return deelnemers.get(1.getScore();}
如果满足该条件。。。唯一的索引应该是。。。0对,不是1?呜呜是的,我不知道为什么我把1放在那里。任何你可以粘贴的代码…显示你的代码。是的,很抱歉lol我在我完成我的问题之前不小心输入了。if(deelnemers.size()==1){return deelnemers.get(1.getScore();}
如果满足这个条件。。。唯一的索引应该是。。。0对,不是1?是的,我不知道为什么我把1放在那里。