因此,我必须编写一个程序,该程序读取0到50(包括0和50)范围内的任意数量的整数,并计算每个整数的输入次数。通过范围之外的值指示输入的结束。处理完所有输入后,打印一次或多次输入的所有值(包括出现次数)。
public class problem
{
public static void main(String[] args)
{
Random rand = new Random();
Scanner scan = new Scanner(System.in);
int userInput = 0;
ArrayList<Integer> myList = new ArrayList<Integer>();
int index = -1;
for (int num = 0; num <= userInput ; num++)
{
System.out.println("Please enter a random number between 0 and 50, enter a negative number to end input: ");
num--;
if(userInput >= 0 || userInput <= 50)
{
userInput++;
userInput = scan.nextInt();
index++;
myList.add(userInput);
}
if (userInput < 0 || userInput > 50)
{
myList.remove(index);
index--;
break;
}
}
for (int num: myList)
System.out.print(num + " ");
}
}
这是我到目前为止所做的,但我对如何计算myList中的每个整数出现感到困惑。
答案 0 :(得分:0)
如果我理解你的问题,你可以做这样的事情
public static void main(String[] args) {
int max = 200; // this is just for test
HashMap<Integer, Integer> counter = new HashMap<>();
for(int i = 0;i < max; i++){
int value = (int) (Math.random() * 50); // generate random numbers
if(counter.containsKey(value)){ // if map contains value, increment it's count
counter.put(value, counter.get(value)+1);
}else{
counter.put(value, 1); //put it and start from 1
}
}
System.out.println(counter);
}
}