如何为数组中的每个元素创建计数器?

时间:2015-12-07 22:24:00

标签: java arrays iteration elements

因此,我必须编写一个程序,该程序读取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中的每个整数出现感到困惑。

1 个答案:

答案 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);

    }

}