随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
2013-04-25 12:35
836 查看
思路很简单,大家一看就懂。
还有一种技术含量更高的解决方案,可以解决类似的问题。下面程序中提供了两个遍历方式,供大家参考。思路也很简单,利用了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);
}
}
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 =rd.nextInt(10)+1; System.out.println(num ); if(num ==1) a++; else if(num ==2) b++; else if(num ==3) c++; else if(num ==4) d++; else if(num ==5) e++; else if(num ==6) f++; else if(num ==7) g++; else if(num ==8) h++; else if(num ==9) i++; else if(num ==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);
}
}
相关文章推荐
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
- 编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数
- C++ 实现从0~100中随机生成50个数,统计出现的数字最大值和最小值,输出出现最多的次数及对应的数字
- 随机生成50个数,范围在【10,50】,统计每个数字出现的次数以及出现次数最多的数字与它的个数。
- Map实现从0~100中随机生成50个数,统计出现的数字最大值和最小值,输出出现最多的次数及对应的数字
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
- 随机生成 50 个数字,每个数字的范围在 [10, 50] 之间,统计每个数字出现的次数,最后将每个数字和它出现的次数打印出来
- 随机产生50个整数,位于[10,50],统计每个数字出现的次数以及出现次数最多的数字与出现次数并打印.如果出现次数为0不打印,打印时要求升序
- js统计一个字符串出现最多的字母(或者数组中出现次数最多的元素)
- 统计数组中出现次数最多的元素并输出
- 去除数组中重复项,并统计重复出现次数最多的元素及重复次数
- 随机生成N个1至100的整数,N由用户给定,程序输出出现次数最多的整数及其出现次数。如果有多个并列最多,需要输出全部最多的整数。
- 统计一个无序数组中出现次数最多的元素
- 定义一个具有10 个整形元素的数组,随机生成1——100 之间的整数初始化数组元
- 统计一个无序数组中出现次数最多的元素
- 数组中出现次数最多/最少的元素
- C#练习——去掉字符串两端的空格、统计字符出现的次数及出现的索引位置、随机生成10个1-100之间的不重复的偶数
- MongoDB统计文档(Document)的数组(Array)中的各个元素出现的次数
- js 算出Array数组中出现次数最多的元素
- LINQ 获取当前数组中出现次数最多的元素