Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 向数组中添加特定范围的数字_Java_Arrays - Fatal编程技术网

Java 向数组中添加特定范围的数字

Java 向数组中添加特定范围的数字,java,arrays,Java,Arrays,我一直在看我的代码,我仍然不明白为什么结果总是最高级别的值,而不是数组中每个位置的不同值 这是我的密码: int[] gradesDescription; int[] gradesCount; gradesDescription = new int[(highestGrade-lowestGrade) + 1]; gradesCount = new int[(highestGrade-lowestGrade) + 1]; for(int b = lowestGrade; b <= hi

我一直在看我的代码,我仍然不明白为什么结果总是最高级别的值,而不是数组中每个位置的不同值

这是我的密码:

int[] gradesDescription;
int[] gradesCount;

gradesDescription = new int[(highestGrade-lowestGrade) + 1];
gradesCount = new int[(highestGrade-lowestGrade) + 1];

for(int b = lowestGrade; b <= highestGrade; b++){
  Arrays.fill(gradesDescription, b);
}

for(int d = 0; d < gradesDescription.length; d++){
 System.out.println("Grade: " + gradesDescription[d] + 
                    " had " + gradesCount[d] + " students with the same grade.");
int[]等级描述;
国际[]等级侦察;
gradesDescription=newint[(最高等级最低等级)+1];
GRADESCONT=新整数[(最高等级最低等级)+1];

对于(int b=最低等级;b
for)(int b=最低等级;b
for)(int b=最低等级;b此行导致您的问题:

Arrays.fill(gradesDescription, b);
这将把
gradesDescription
中的每个值分配给
b
。您想要的是:

for(int b = 0; b < gradesDescription.length; b++) {
    gradesDescription[b] = b + lowestGrade;
}
for(int b=0;b

尽管如此,我不得不说,即使这个代码看起来也是错误的。如果有三个学生的成绩分别为70、80和100,那么预期的行为是什么?
成绩描述。长度将最终为30,但实际上它应该只有3?我假设您忽略了分配
gradesCount
元素的代码?

这段line导致了您的问题:

Arrays.fill(gradesDescription, b);
这将把
gradesDescription
中的每个值分配给
b
。您想要的是:

for(int b = 0; b < gradesDescription.length; b++) {
    gradesDescription[b] = b + lowestGrade;
}
for(int b=0;b

尽管如此,我不得不说,即使这个代码看起来也是错误的。如果有三个学生的成绩分别为70、80和100,那么预期的行为是什么?
成绩说明。长度将最终为30,但实际上它应该只有3?我假设您忽略了分配
gradesCount
元素的代码?

数组。fill是在循环中每次用相同的值填充整个数组

for(int idx = 0; idx < gradesDescription.length; idx++){
  gradesDescription[idx] = idx + lowestGrade;
}
for(int-idx=0;idx
Arrays.fill是在循环中每次用相同的值填充整个数组。我想您需要

for(int idx = 0; idx < gradesDescription.length; idx++){
  gradesDescription[idx] = idx + lowestGrade;
}
for(int-idx=0;idx
非常好的描述!我现在得到了逻辑,我还看到Arrays.fill刚刚向我的数组发送了相同的值。谢谢!我正在使用不同的数组浏览包含某些分数的文件,我需要计算每个分数有多少学生获得了相同的分数(从最低分数到最高分数)然后我会将每个计数分配到与成绩描述相匹配的对应位置。然后我将只打印成绩和具有相同成绩的学生人数。非常好的描述!我现在得到了逻辑,我也看到了数组。fill只是将相同的值发送到我的数组。谢谢!我正在使用不同的数组来浏览文件这包含某些分数,我需要计算每个分数有多少学生获得了相同的分数(从最低分数到最高分数),然后我将每个计数分配到与分数描述匹配的对应位置。然后我将只打印分数和具有相同分数的学生数量。