思路很简单,大家一看就懂。
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;
else
return 0;
}
}
还有一种技术含量更高的解决方案,可以解决类似的问题。下面程序中提供了两个遍历方式,供大家参考。思路也很简单,利用了hashmap,将数组元素依次和map里面的初始key比较,如果有相同的,那么value值加1。
import java.util.*;
class Count
{
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);
}
}