【发布时间】: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
}
}
}
【问题讨论】: