怎么在数组中找出出现次数最多的元素(JAVA实现)

比如{1,5,3,5,6,8,4}返回5{1,5,3,6,3,5}返回3,5谁能提示下怎么实现啊?谢谢啦... 比如{1,5,3,5,6,8,4}返回5 {1,5,3,6,3,5}返回3,5
谁能提示下怎么实现啊?谢谢啦
展开
 我来答
citytalent
推荐于2016-05-12 · TA获得超过1222个赞
知道小有建树答主
回答量:542
采纳率:0%
帮助的人:578万
展开全部
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.swing.JOptionPane;

public class Test88 {
public static void main(String[] args) {
int[] ss = { 1,3,2,5,2,5,7};
Map map = new HashMap();

for (int i = 0; i < ss.length; i++) {
int count = 0;
for (int j = 0; j < ss.length; j++) {
if (ss[i] == (ss[j])) {
count = count + 1;
}
}
// 为了不打印重复的,放入map中去掉重复的
map.put(ss[i], count);
}

// 遍历map,打印包含的数字和个数
Set key = map.keySet();
int k = key.size();
int ii[] = new int[k];// 存放出现次数最多的
k = 0;
int temp = 0;// 比较的时候的中间量
int temp2 = 0;
for (Iterator iterator = key.iterator(); iterator.hasNext();) {
int name = Integer.parseInt(iterator.next().toString());
int count2 = Integer.parseInt(map.get(name).toString());
if (temp < count2) {
temp = count2;

}
System.out.println(name + "出现 " + count2 + " 次");
}

for (Iterator iterator = key.iterator(); iterator.hasNext();) {
int name = Integer.parseInt(iterator.next().toString());
int count2 = Integer.parseInt(map.get(name).toString());
if (temp == count2) {
ii[k]=name;
k++;
}
}

System.out.print("出现最多的是:");
for (int i = 0; i < ii.length; i++) {
if (ii[i] != 0) {
System.out.print(ii[i] + " ");
}

}
}
}

数组的数字可以随意填写,其中第一次for的遍历是得到出现的数字最多的次数,第2次for的遍历是和这个次数比较,因为已经是最多的了,所以只要和这个相等,那个元素也就是出现最多的了,即使有出现次数同样最多的也可以保存
long54831
2008-06-02 · 超过17用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:155万
展开全部
做两个循环嵌套。外部循环每次拿出数组中的每一个元素,用一个变量记录下来。内部循环再次遍历整个数据,查询与你记录的变量值相等你的元素,如果存在就在你定义的记录数量的变量上加一。
最后在循环外面判断那个数量大, 就是他对应的那个变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友11aa23d7a
2008-06-02 · TA获得超过559个赞
知道小有建树答主
回答量:696
采纳率:0%
帮助的人:323万
展开全部
看起来是citytalent的地道一些哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花儿睡觉
2008-06-02 · TA获得超过221个赞
知道答主
回答量:319
采纳率:0%
帮助的人:0
展开全部
int temp = 0;
int [] num = {1,2,3,2,4,5,4};
for(int i = 0; i<num.length;i++){
temp = num[i];
for(int j = i+1;j<num.length;j++){
if(temp == num[j])
System.out.println(temp);
}
}
}

只能适用 一个数组 里的元素最多出现2次
如果出现3次 就会有重复值出现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhui5201717
2008-06-02 · TA获得超过275个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:168万
展开全部
int arr[] = {1,5,3,5,6,8,4};
int i = 0 ;
while(i < arr.length()){
int count = 0;
int j = i;
while(j < arr.length()){
if(arr[i] == arr[j]){
count++;
}
j++;
}
if(count >= 2){
System.out.println(arr[i]);
}
i++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式