java計算list集合中重複對象的次數及for循環內外建立對象

個人需求:計算字符串集合中「數值」出現的次數,而後在for循環中計算「數值」及出現的次數spa

解決方案:.net

        1、計算次數(參考模板)http://blog.csdn.net/softwave/article/details/8621233code

一、使用collections類中的frequency(集合,查詢參數)對象

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);  能夠天然排序即升序

get

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循環裏邊建立的對象,則不會。

相關文章
相關標籤/搜索