如何打印最常见的system.out.print(“”)

时间:2016-02-26 06:22:25

标签: java

在这个程序中,我将获得一个名称列表,这些名称将在采取特定操作后通过system.out.print()方法(例如system.out.print(“Joe,”))打印。 / p>

例如,我的输出将是

Joe, Ben, Ben, Tom, Ben, Joe, Tom, Tom, Joe, Tom

现在我需要找到一种方法,使用Java来浏览打印的名称列表并收集最常见的名称,理想情况是在完成计算后会打印出类似的内容。

The most common name was: Tom

我考虑过创建int计数器,每次打印名称时都会增加++,但我不知道如何进一步使用这种解决方案。这可能相当不错,所以我很感激你的时间!

2 个答案:

答案 0 :(得分:1)

我能想到的两种方式:

  1. 创建映射/字典,使用名称作为键并计算每个名称的外观数量,采用最大计数器的
  2. 对名单进行排序,循环排序列表并增加同一组名称的计数器,遇到新名称时重置计数器,同时记录最大计数名称
  3. 两种方法都具有相似的复杂性

答案 1 :(得分:1)

您可以使用HashMap。声明如下。

HashMap<String, Integer> hm = new HashMap<>();

要将名称存储为每个名称的键和计数器,请使用这样的方法。

  public HashMap<String, Integer> incrementCountForName(HashMap<String, Integer> hm, String name) {
            if (hm.containsKey(name)) {
                int count = hm.get(name);
                hm.put(name, count + 1);
            } else {
                hm.put(name, 1);
            }
            return hm;
        }

要查找地图的最大值,您可以查看here。有很多商品解决方案。