随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素

来源:互联网 发布:余文乐潮牌淘宝有店吗 编辑:程序博客网 时间:2024/06/08 01:36

思路很简单,大家一看就懂。

import java.util.*;class  Max{static int a,b,c,d,e,f,g,h,i,j;public static void main(String[] args) {int[] num=new int[100];Random rd=new Random();for(int n=0;n<100;n++){num[n]=rd.nextInt(10)+1;System.out.println(num[n]);if(num[n]==1)a++;else if(num[n]==2)b++;else if(num[n]==3)c++;else if(num[n]==4)d++;else if(num[n]==5)e++;else if(num[n]==6)f++;else if(num[n]==7)g++;else if(num[n]==8)h++;else if(num[n]==9)i++;else if(num[n]==10)j++;}int[] cn={a,b,c,d,e,f,g,h,i,j};Arrays.sort(cn);System.out.println(Arrays.toString(cn));int max=count(cn[9]);int min=count(cn[0]);System.out.println("出现次数最多的是:"+max+",总共出现:"+cn[9]+"次,"+"出现次数最少的是:"+min+",总共出现:"+cn[0]+"次,");}static int count(int m){if(m==a)return 1;else if(m==b)return 2;else if(m==c)return 3;else if(m==d)return 4;else if(m==e)return 5;else if(m==f)return 6;else if(m==g)return 7;else if(m==h)return 8;else if(m==i)return 9;else if(m==j)return 10;elsereturn 0;}}

还有一种技术含量更高的解决方案,可以解决类似的问题。下面程序中提供了两个遍历方式,供大家参考。思路也很简单,利用了hashmap,将数组元素依次和map里面的初始key比较,如果有相同的,那么value值加1。

import java.util.*;classCount {public void count(int[] arr){int num=0;Map<Integer,Integer> map=new HashMap<Integer,Integer>();for(int i=1;i<=10;i++){map.put(i,num);}for(int i=0;i<arr.length;i++){/*Iterator it = map.entrySet().iterator();    while(it.hasNext()){     Map.Entry m=(Map.Entry)it.next();if(arr[i]==(int)m.getKey())map.put((int)m.getKey(),(int)m.getValue()+1);}*/for(Map.Entry<Integer,Integer> m:map.entrySet()){if(arr[i]==(int)m.getKey())map.put((int)m.getKey(),(int)m.getValue()+1);}}for(Map.Entry<Integer,Integer> m:map.entrySet()){System.out.println(""+m.getKey()+"出现的次数为:"+m.getValue()+"次");}}public static void main(String[] args) {Random rd=new Random();int[] arr=new int[100];for(int i=0;i<100;i++){arr[i]=rd.nextInt(10)+1;}new Count().count(arr);}}


原创粉丝点击