应该调用我的方法
Public Collection<Character> mostCommonFirstWeighted()
但我解决问题的方法是让它返回
List<Map.Entry<Character, Integer>>
如何解决此问题,以便我的返回语句改为字符集合?
public List<Map.Entry<Character, Integer>> mostCommonFirstWeighted() {
HashMap<Character, Integer> hashmap = new HashMap<Character, Integer>();
for (String s : lst) {
if (hashmap.get(s.charAt(0)) == null) {
hashmap.put(s.charAt(0), 1);
} else {
hashmap.put(s.charAt(0), hashmap.get(s.charAt(0)).intValue() + 1);
}
}
Integer largestVal = null;
List<Map.Entry<Character, Integer>> largestList = new ArrayList<Map.Entry<Character, Integer>>();
for (Map.Entry<Character, Integer> i : hashmap.entrySet()) {
if (largestVal == null || largestVal < i.getValue()) {
largestVal = i.getValue();
largestList.clear();
largestList.add(i);
} else if (largestVal == i.getValue()) {
largestList.add(i);
}
}
return largestList;
}
}
示例输入:[and、and、and、and、these、 those、their、boxes、boxes]
预期结果:[a]
我得到的结果:[a=4]
最佳答案
改变
List<Map.Entry<Character, Integer>> largestList = new ArrayList<Map.Entry<Character, Integer>>();
到
List<Character> largestList = new ArrayList<Character>();
和largestList.add(i);
(两者)到largestList.add(i.getKey());
关于java - 如何让我的方法返回 Collection<Character>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825180/