要求:通过命令行输入多个单词,单词之间用逗号分开,统计每个单词出现的次数,并把单词和其出现的次数分别打印出来,使用HashMap类实现。
输入单词如下图:
package michael.wlq;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < args.length; i++) {
if (map.get(args[i]) == null) {
map.put(args[i], new Integer(1));
} else {
Integer in = (Integer) map.get(args[i]);
in = new Integer(in.intValue() + 1);
map.put(args[i], in);
}
}
// 通过keySet()方法获取键的集合
Set<String> set = map.keySet();
// 遍历键的集合,获取每个key,然后通过map.get(key)方法得到value
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
String key = (String) iter.next();
Integer value = (Integer) map.get(key);
System.out.println(key + " : " + value);
}
}
}
输出结果为:
此例使用HashMap实现是有Map的特性决定的,因为Map的put(key, value)方法key是唯一的,而value是不唯一的,所以可以使用单词本身作为 key,以确保唯一性,而使用单词出现的次数作为value,从而可以实现要求。