java计算list集合中重复对象的次数及for循环内外创建对象
2017-08-30 00:00
477 查看
我的需求:计算字符串集合中“数值”出现的次数,然后在for循环中计算“数值”及出现的次数
解决方案:
一、计算次数(参考模板):http://blog.csdn.net/softwave/article/details/8621233
1、使用collections类中的frequency(集合,查询参数)
返回指定 collection 中等于指定对象的元素数。更确切地讲,返回 collection 中满足 (o == null ? e == null : o.equals(e)) 的 e 元素的数量。
参数:
抛出:
从以下版本开始:
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); 可以自然排序即升序
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回
更确切地讲,如果此映射包含满足
如果此映射允许 null 值,则返回
参数:
返回:
指定键所映射的值;如果此映射不包含该键的映射关系,则返回
抛出:
二、for循环中创建对象(参考):http://blog.csdn.net/superman__007/article/details/73549921
当使用new 创建对象时,会在堆内存中分配一块区域,以后所做的set()操作都是对这块区域进行操作。所以在for循环外边创建的对象,在for循环中操作会不断被下一次操作覆盖。在for循环里边创建的对象,则不会。
解决方案:
一、计算次数(参考模板):http://blog.csdn.net/softwave/article/details/8621233
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 键(可选)
二、for循环中创建对象(参考):http://blog.csdn.net/superman__007/article/details/73549921
当使用new 创建对象时,会在堆内存中分配一块区域,以后所做的set()操作都是对这块区域进行操作。所以在for循环外边创建的对象,在for循环中操作会不断被下一次操作覆盖。在for循环里边创建的对象,则不会。
相关文章推荐
- java中解决list集合里对象重复问题
- List集合筛选数据去掉重复,含有数据重复次数(JAVAAndroid)
- java中对集合对象list的几种循环访问
- (转)java中对集合对象list的几种循环访问总结
- JAVA找出List集合中重复次数最多的数据和次数
- Java判断一个值,或者对象是否存在list集合中和去掉list集合中重复的元素
- java中对集合对象list的几种循环访问总结
- java8 lambda 统计list中对象的重复次数
- java中对集合对象list的几种循环访问
- 结合网上内容,分享一个,java用for循环创建i个对象,的方法
- Java基础:循环迭代Array/List/Set/Map集合 增强for循环
- [转载]java中对集合对象list的几种循环访问
- List集合存储字符串和自定义对象并遍历(for循环和迭代)
- java8 lambda 统计list中对象的重复次数
- java遍历整数list集合或者整数数组得到最大重复数字次数如果次数相同取较小的值
- 完美解决Java中List集合去除重复的JavaBean对象某些属性值方案
- java中对List对象集合进行排序
- 用Java写算法技巧(1)去掉List中的重复对象
- 为何使用EL表达式能够访问valueStack中对象的属性、采用OGNL表达式创建List/Map集合对象
- Java集合HashSet中的两个对象怎样算重复