Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图计算平均值,但得到错误:java.lang.IndexOutOfBoundsException:索引:1,大小:1_Java - Fatal编程技术网

试图计算平均值,但得到错误:java.lang.IndexOutOfBoundsException:索引:1,大小:1

试图计算平均值,但得到错误: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

我试图创建一个函数来计算平均值,但我一直收到一条错误消息,这真的令人沮丧,因为我知道这是一个非常简单的函数。我一直收到错误java.lang.IndexOutOfBoundsException,因此我知道它与索引错误有关,但我无法找出它

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放在那里。