统计数字

某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
输入
第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。
输出
包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
样例输入
8
2
4
2
4
5
100
2
100

样例输出
2 3
4 2
5 1
100 2

import java.io .*;
import java.util.Scanner;
class Main 
{
    public static void main(String[] args) 
    {
            int n,m, i=0,max=0;
            int a [] =  new int[10000];
            Scanner scan=new Scanner(System.in);
            n=scan.nextInt();
            while(i<n)
            {
                i++;
                m = scan.nextInt();
                a[m]++;
                if(m>max)
                    max=m;
            }
            for(int j=0;j<=max;j++)
            {
                if(a[j]!=0)
                {
                    System.out.println(j+" "+a[j]);
                }
            }
    }
}

;