我需要建立一个直方图(Java)的帮助,它将采用范围从0到9的数字(数组)的列表并输出每个数字存在的次数。因此,例如,与{1,5,3,4,5,5,5,4,3,2,5,5,5,}
会打印:如何建立直方图?
0 - 0
1 - 1
2 - 1
3 - 3
4 - 2
5 - 7
6 - 0
7 - 0
8 - 0
9 - 0
这是我的代码至今:
import java.util.Scanner;
public class Histogram
{
private int[] numCount;
public Histogram(int[] array)
{
setArray(array);
}
public void setArray(int[] array)
{
numCount=array;
}
public String toString()
{
int count=0;
String boi="";
for(int x=0; x<=9; x++)
{
for (int y=0; y<numCount.length; y++)
{
if (numCount[x]==numCount[y])
count++;
boi=x+" - "+ count+"\n";
}
}
return boi;
}
}
当我运行这个(在一个单独的亚军文件),它打印“9-40”。将不胜感激任何可以提供的帮助。谢谢!
我想你的意思是'如果( numCount [y] == x)' – Andreas
每个循环都会附加到boi字符串,但直到所有数字都被循环遍历,您才会知道最终的直方图。 – bejado
你可能也是指'boi + = x +“ - ”+ count +“\ n”',实际上*追加*到'boi',并且在'y'循环之外,并且初始化'count = 0'在'x'循环中。那是4个逻辑错误。 – Andreas