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循环里边建立的对象,则不会。

相关文章
相关标签/搜索