本文共 1309 字,大约阅读时间需要 4 分钟。
JAVA算法:在给定的数组中查找出现次数最多的元素(JAVA版本)
题目要求:在给定的数组中查找出现次数最多的元素,以及其出现的次数。
例如:在数组 { 2, 3, 1, 2, 2, 5, 6, 8, 2, 3, 2, 4, 2 }中,元素2出现的次数最多,一共出现了 6次。
问题分析
对于这个问题,要求的结果是找到出现次数最多的元素,以及其出现的次数。
分析这个问题,我们可以使用一个 HashMap<Integer, Integer>结构的数据类型来存放结果。在HashMap结构中,第一个元素用来存放出现次数最多的元素,第二个元素用来存放该元素出现的次数。
然后遍历HashMap结构即可获得结果。
算法设计
package com.bean.algorithm.basic;import java.util.Collection;import java.util.Collections;import java.util.HashMap;import java.util.Map;/* * 题目要求:在给定的数组中,查找出现次数最多的数组元素和其出现的次数 * */public class FindMaxCountofElements { /** * @param args */ public static void main(String[] args) { int[] array = { 2, 3, 1, 2, 2, 5, 6, 8, 2, 3, 2, 4, 2 }; // 第一个值为出现的数字,第二个值为出现的次数 HashMapmap = new HashMap<>(); for (int i = 0; i < array.length; i++) { if (map.containsKey(array[i])) { int temp = map.get(array[i]); map.put(array[i], temp + 1); } else { map.put(array[i], 1); } } // 得到value为maxCount的key,也就是数组中出现次数最多的数字 Collection count = map.values(); int maxCount = Collections.max(count); int maxnum = 0; for (Map.Entry entry : map.entrySet()) { if (maxCount == entry.getValue()) { maxnum = entry.getKey(); } } System.out.println("出现次数最多的元素为" + maxnum); System.out.println("该元素一共出现了" + maxCount + "次"); }}
程序运行结果:
出现次数最多的元素为2
该元素一共出现了6次
转载地址:http://gntdi.baihongyu.com/