java中不调用其他方法求数组中每个元素出现的次数

 我来答
佳芮灬
2015-10-27 · TA获得超过5955个赞
知道大有可为答主
回答量:3066
采纳率:91%
帮助的人:767万
展开全部
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的遍历是和这个次数比较,因为已经是最多的了,所以只要和这个相等,那个元素也就是出现最多的了,即使有出现次数同样最多的也可以保存
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式