A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wyy666 中级黑马   /  2014-5-29 23:31  /  578 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在网上看到一个百度的算法题,如题,在一个数组中,找出出现次数最多且数值最大的一个数并输出。上次看视频的时候,突然想到可以通过map集合来做这题,将数值作为键存入map集合,而将出现的次数作为值存入map集合中。然后可以取出元素及元素出现的个数,那么请问各位怎么进行比较呢?取出那个出现次数最多且数值最大的元素。下面是我的代码,求高手指点一下啊。谢谢。
  • package test;
  • import java.util.*;
  • /*查找一个数组中出现次数最多且最大的数。
  • * int[] a={1,2,3,2,4,2,4,2}
  • * */
  • public class FindArray {
  •         public static void main(String[] args) {
  •                 int[] in ={2,4,3,2,4,2,3};
  •                 findElement(in);
  •         }
  •         public static void findElement(int[] in){
  •                 Map<Integer,Integer> map =new TreeMap<Integer,Integer>();
  •                 for(int x = 0;x<in.length;x++){
  •                         Integer value = map.get(in[x]);
  •                         if(value==null){
  •                           map.put(in[x],1);
  •                         }
  •                         else
  •                           map.put(in[x], ++value);
  •                 }
  •                 Set<Integer> set = map.keySet();
  •                 Iterator<Integer> iterator = set.iterator();
  •                 while(iterator.hasNext()){
  •                         Integer key = iterator.next();
  •                         int count = map.get(key);
  •                         System.out.println(key+"出现了"+count+"次");
  •                 }
  •         }
  • }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马