java出现次数最多的数_java如何找出一个int数组中出现次数最多

  • Post author:
  • Post category:java


展开全部

其实这个问题,涉及到两个过程首先是统计数组中数字出现的次数,应该要有类32313133353236313431303231363533e78988e69d8331333365636666似“数字 – 出现次数”这种结果出现,其实就是Map结构的key和value

然后就是找出出现次数最大的一个,并返回对应的数字即可

针对以上两个过程,推荐采用Java8的流(Stream)来处理,代码比较简单易懂,因此下面的示例代码,请在JDK8的环境下运行int[] arr = {1, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5};

// 过程1 Collectors.groupingBy代表是分类,按照本身Function.identity()进行分类,那相同数字就会放在一起,Collectors.counting是统计相同数字的个数

Map map = IntStream.of(arr).boxed().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

System.out.println(“数字出现次数统计(数字=次数):” + map);

// 过程2 max方法是根据比较器(按照map的value进行排序)找出最大值

Optional maxOptional = map.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).map(Map.Entry::getKey);

System.out.println(“出现次数最多的数字:” + maxOptional.get());

最后结果如下

156dbdefe4ad7ad41d1447f26ecc0700.png



版权声明:本文为weixin_36372623原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。