【问题标题】:How does one convert a simple program to a HashMap in Java?如何将一个简单的程序转换为 Java 中的 HashMap?
【发布时间】:2016-12-28 17:50:20
【问题描述】:

我有以下程序:

    public class PopularCharacter {

    public static void main(String[] args) {

        PopularCharacter popularCharacter = new PopularCharacter();
        char result = popularCharacter.charCounter("azzo");
        System.out.println("PopularChar " + result);
    }
    public char charCounter(String input) {
        int maxIndex = 0;
        int maxValue = 0;
        int[] value = new int[26];

        for (int index = 0; index < input.length(); index++) {
            value[input.charAt(index) - 97]++;
        }

        for (int index = 0; index < value.length; index++) {
            if (value[index] > maxValue) {
                maxValue = value[index];
                maxIndex = index;
            }
        }

        return (char) (maxIndex + 97);
    }
}

我应该如何修改代码以使用 HashMap 实现? 这是我第一次使用HashMap,我很困惑。我请你重构代码的基地。

我试过这样做,但我知道毫无价值:

    import java.util.*;

public class MaxCharHM {

    public static void main(String[] args) {
        MaxCharHM popularchar = new MaxCharHM();
        char result = popularchar.charCounter("aabbaacdcldkaalkccccc");
        System.out.println("Popular char: " + result);
    }

    public HashMap <Character, Integer> buildMap (String input){

            HashMap value = new HashMap();
            for (int i = 0; i < input.length(); i++) {
                value.put[input.charAt(i) - 97]++;

        return (char) (something + 97)

   etc etc
            }   
    }
}

【问题讨论】:

    标签: java sorting hashmap


    【解决方案1】:

    您需要首先了解地图是什么以及它是什么/如何存储数据。一旦您到达那里,您就会得到问题的答案。只需查看 Map.put(key k, value) 的参数列表五)

    【讨论】:

    • @hlmAnShU:我应该把整个代码弄乱,还是解决办法关闭第一个程序?
    • 在上面的代码示例中,您使用了一个索引值为 26 的列表.. 并且该索引处的值是字符的出现次数.. Map 会将数据从键映射到索引..所以您的地图中将有 26 个键,每次在“输入”中找到字符时,都会将值增加 1.. 这与列表的逻辑非常相似..
    • 我的干预是因为要确定转换是否仅在方法 HashMap 或什至在 main 中发生。我想知道指南,而不是锻炼解决方案。
    • 好的,我明白了。我会按照您的建议尽力而为。
    • 为什么要打扰 main 方法内部发生的事情..?只要方法签名相同..它只是您要更改的数据结构..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2011-07-25
    • 2014-09-27
    • 1970-01-01
    相关资源
    最近更新 更多