解决此题的关键在于如何排序,我们可以利用冒泡排序或者其他排序,而我用到的是sort()方法,让数组从小到大的排列,然后再利用if语句判断两个相邻的数组的值是否相等,若相等,则计时器count自加一,如果相邻数组不相等,则进行相应的输出,但通过判断两个相邻的数组相等会造成一个漏洞,就是无法对最后一个数进行输出,基于此,我们还要对最后一个数组稍作处理,即可完成此题。

import java.util.*; public class Main {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner sc=new Scanner(System.in);
	int n=sc.nextInt();
	int[] s=new int[n];
	int count=1;
	for(int i=0;i<n;i++) {
		s[i]=sc.nextInt();
	}
	Arrays.sort(s);
		for(int j=0;j<n-1;j++) {
			if(s[j]==s[j+1]) {
				count++;
				
			}
			else {
				System.out.print(s[j]+" "+count);
				count=1;
				System.out.println();
			}
			
		}
	int sum=0;
	for(int i=0;i<n;i++) {
		if(s[i]==s[n-1]) {
			sum++;
		}
		
	}
	System.out.print(s[n-1]+" "+sum);
}

}