用java定义一个一维数组,其中随机生成500个1到50之间整数,输出出现最多的偶

 我来答
zhuniadi82
2014-10-24 · TA获得超过397个赞
知道小有建树答主
回答量:205
采纳率:66%
帮助的人:116万
展开全部
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]);
}
右线块
2014-10-24 · 超过13用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:31万
展开全部
你可以这样做!定义一个Map<int,int>,key和value分别对应为:数字和出现的次数,而且再做循环的时候你直接将不是偶数的过滤掉,那么在List<Map<int,int>>中存放的内容就只有偶数以及偶数对应出现的次数,那么拿出value最大的即可!这样做的效率会高点!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0adf2dfc62
2014-10-24 · TA获得超过578个赞
知道小有建树答主
回答量:553
采纳率:50%
帮助的人:215万
展开全部
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 + "次");
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式