用java定义一个一维数组,其中随机生成500个1到50之间整数,输出出现最多的偶
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java定义一个一维数组,其中随机生成500个1到50之间整数,输出出现最多的偶相关的知识,希望对你有一定的参考价值。
static void ss()Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Integer[] nums = new Integer[500];// 定义一个长度500的整数组
Random ra = new Random();
// 循环给数组赋值(随机产生值)
for (int i = 0; i < nums.length; i++)
nums[i] = ra.nextInt(50) + 1;// 1-50之间
Integer count = 0;// 出现的次数
for (int i = 0; i < nums.length; i++)
if (nums[i] % 2 == 0)
for (int j = 0; j < nums.length; j++)
if (nums[i].equals(nums[j]))
count++;
if (j == nums.length - 1) // 最后赋值给map
map.put(nums[i], count);
count = 0;
System.out.println("排序前:" + map);
List<Map.Entry<Integer, Integer>> mappingList = null;
mappingList = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(mappingList,
new Comparator<Map.Entry<Integer, Integer>>()
public int compare(Map.Entry<Integer, Integer> mapping1,
Map.Entry<Integer, Integer> mapping2)
// 降序或升序只需要更改参数位置
return mapping2.getValue().compareTo(
mapping1.getValue());
);
System.out.print("排序后:");
for (Map.Entry<Integer, Integer> mapping : mappingList)
System.out.print(mapping.getKey() + ":" + mapping.getValue() + "\t");
String[] str = mappingList.get(0).toString().split("=");
System.out.println("\n出现次数最多的偶数:"+str[0]+",出现的次数为:"+str[1]);
参考技术A 你可以这样做!定义一个Map<int,int>,key和value分别对应为:数字和出现的次数,而且再做循环的时候你直接将不是偶数的过滤掉,那么在List<Map<int,int>>中存放的内容就只有偶数以及偶数对应出现的次数,那么拿出value最大的即可!这样做的效率会高点! 参考技术B package df.tests;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class Test
/**
* @param args
*/
public static void main(String[] args)
int[] array = new int[500];
Map<String, String> map = new HashMap<String, String>();
System.out.print("随机生成的500个数是:");
for(int i=0; i<500; i++)
int data = (int)(Math.random() * 50) + 1;
array[i] = data;
System.out.print(data + " ");
if(data % 2 == 0)
if(map.containsKey(String.valueOf(data)))
int count = Integer.parseInt(map.get(String.valueOf(data)).toString());
count++;
map.put(String.valueOf(data), String.valueOf(count));
else
map.put(String.valueOf(data), String.valueOf(1));
int maxCount = 0;
for(Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();)
int curValue = Integer.parseInt(it.next().getValue());
if(curValue > maxCount)
maxCount = curValue;
List<String> list = new ArrayList<String>();
for(Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();)
Map.Entry<String, String> curMap = it.next();
if(Integer.parseInt(curMap.getValue()) == maxCount)
list.add(curMap.getKey());
System.out.println();
System.out.print("其中" + list.size() + "个偶数出现次数最多,分别是: ");
for(String data : list)
System.out.print(data + " ");
System.out.print(" ,出现了" + maxCount + "次");
以上是关于用java定义一个一维数组,其中随机生成500个1到50之间整数,输出出现最多的偶的主要内容,如果未能解决你的问题,请参考以下文章
VB程序设计,用随机函数产生10个50以内(包括50)的随机整数存入一维数组。求出最大值并和数组中的首个
产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
java Vector 怎么用一个Vector来给一个一维数组赋值呢?