個人需求:計算字符串集合中「數值」出現的次數,而後在for循環中計算「數值」及出現的次數spa
解決方案:.net
1、計算次數(參考模板):http://blog.csdn.net/softwave/article/details/8621233code
一、使用collections類中的frequency(集合,查詢參數)對象
public static int frequency(Collection<?> c, Object o)
返回指定 collection 中等於指定對象的元素數。更確切地講,返回 collection 中知足 (o == null ? e == null : o.equals(e)) 的 e 元素的數量。blog
參數:排序
c
- 在其中肯定 o 出現頻率的 collection內存
o
- 將肯定出現頻率的對象字符串
拋出:get
NullPointerException
- 若是 c 爲 nullio
從如下版本開始:
1.5
二、使用map
Integer count = map.get(查詢參數); map.put(查詢參數, (count == null) ? 1 : count + 1);
Map treeMap = new TreeMap(map);
Ps:這個方法巧妙的使用get(),當查詢參數第一次出現時,返回null,map集合中計數爲一。
new TreeMap(map); 能夠天然排序即升序
V get(Object key)
返回指定鍵所映射的值;若是此映射不包含該鍵的映射關係,則返回 null
。
更確切地講,若是此映射包含知足 (key==null ? k==null : key.equals(k))
的鍵 k
到值 v
的映射關係,則此方法返回 v
;不然返回 null
。(最多隻能有一個這樣的映射關係)。
若是此映射容許 null 值,則返回 null
值並不必定 表示該映射不包含該鍵的映射關係;也可能該映射將該鍵顯示地映射到 null
。使用 containsKey
操做可區分這兩種狀況。
參數:
key
- 要返回其關聯值的鍵
返回:
指定鍵所映射的值;若是此映射不包含該鍵的映射關係,則返回 null
拋出:
ClassCastException
- 若是該鍵對於此映射是不合適的類型(可選)
NullPointerException
- 若是指定鍵爲 null 而且此映射不容許 null 鍵(可選)
2、for循環中建立對象(參考):http://blog.csdn.net/superman__007/article/details/73549921
當使用new 建立對象時,會在堆內存中分配一塊區域,之後所作的set()操做都是對這塊區域進行操做。因此在for循環外邊建立的對象,在for循環中操做會不斷被下一次操做覆蓋。在for循環裏邊建立的對象,則不會。