使用場景:統計單詞詞頻率
思路:使用HashMap的鍵值對特性,根據傳入的參數作爲鍵值,從Map中取對象,取到了則 + 1,未取到則置1。不斷循環下去。
代碼如下
方法一:
import java.util.*;
public class TestArgsWords {
//private static final Integer ONE = new Integer(1);
private static final int ONE = 1;
public static void main(String args[]) {
Map m = new HashMap();
for (int i = 0; i < args.length; i++) {
//Integer freq = (Integer) m.get(args[i]);
int freq = (Integer) m.get(args[i]) == null ? 0 : (Integer) m.get(args[i]);
//m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));
m.put(args[i], freq==0 ? ONE : freq + 1);
}
System.out.println
(m.size() + " distinct words detected:");
System.out.println(m);
}
}
方法二:
import java.util.*;
public class TestArgsWords {
private static final int ONE = 1;
public static void main(String args[]) {
Map<String, Integer> m = new HashMap<String, Integer>();
for (int i = 0; i < args.length; i++) {
if(!m.containsKey(args[i])) {
m.put(args[i], ONE);
}
else {
int freq = m.get(args[i]);
m.put(args[i], freq + 1);
}
}
System.out.println
(m.size() + " distinct words detected:");
System.out.println(m);
}
}