java 循环list 对象_java计算list集合中重复对象的次数及for循环内外创建对象

我的需求:计算字符串集合中“数值”出现的次数,然后在for循环中计算“数值”及出现的次数

解决方案:

1、使用collections类中的frequency(集合,查询参数)

frequency

public static int frequency(Collection> c,

Object o)

返回指定 collection 中等于指定对象的元素数。更确切地讲,返回 collection 中满足 (o == null ? e == null : o.equals(e)) 的 e 元素的数量。

参数:

c - 在其中确定 o 出现频率的 collection

o - 将确定出现频率的对象

抛出:

NullPointerException - 如果 c 为 null

从以下版本开始:

1.5

2、使用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 键(可选)

当使用new 创建对象时,会在堆内存中分配一块区域,以后所做的set()操作都是对这块区域进行操作。所以在for循环外边创建的对象,在for循环中操作会不断被下一次操作覆盖。在for循环里边创建的对象,则不会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值