本文演示如何使用Collections.frequency和Map来计算重复项出现的次数。(Collections.frequency在JDK 1.5版本以后支持)

  1. package com.qiyadeng.core;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.HashMap;
  5. import java.util.HashSet;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import java.util.TreeMap;
  10. public class CountDuplicatedList {
  11. public static void main(String[] args) {
  12. List list = new ArrayList();
  13. list.add("a");
  14. list.add("b");
  15. list.add("c");
  16. list.add("d");
  17. list.add("b");
  18. list.add("c");
  19. list.add("a");
  20. list.add("a");
  21. list.add("a");
  22. System.out.println("\n例子1 - 计算'a'出现的次数");
  23. System.out.println("a : " + Collections.frequency(list, "a"));
  24. System.out.println("\n例子2 - 计算所有对象出现的次数");
  25. Set uniqueSet = new HashSet(list);
  26. for (String temp : uniqueSet) {
  27. System.out.println(temp + ": " + Collections.frequency(list, temp));
  28. }
  29. System.out.println("\n例子3 -用Map来计算对象出现的次数");
  30. Map map = new HashMap();
  31. for (String temp : list) {
  32. Integer count = map.get(temp);
  33. map.put(temp, (count == null) ? 1 : count + 1);
  34. }
  35. printMap(map);
  36. System.out.println("\nMap排序-以key排序");
  37. Map treeMap = new TreeMap(map);
  38. printMap(treeMap);
  39. }
  40. public static void printMap(Map map) {
  41. for (Map.Entry entry : map.entrySet()) {
  42. System.out.println("Key-value : " + entry.getKey() + "- "
  43. + entry.getValue());
  44. }
  45. }
  46. }

输出结果

  1. 例子1 - 计算'a'出现的次数
  2. a : 4
  3. 例子2 - 计算所有对象出现的次数
  4. d: 1
  5. b: 2
  6. c: 2
  7. a: 4
  8. 例子3 -用Map来计算对象出现的次数
  9. Key-value : d- 1
  10. Key-value : b- 2
  11. Key-value : c- 2
  12. Key-value : a- 4
  13. Map排序-以key排序
  14. Key-value : a- 4
  15. Key-value : b- 2
  16. Key-value : c- 2
  17. Key-value : d- 1

最新文章

  1. Win8换成Win7系统问题小结(修改主板BIOS方法)
  2. [转] The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing
  3. [转]TortoiseSVN文件夹及文件图标不显示解决方法
  4. ABBYY是怎么自定义主窗口的
  5. Jmeter接口测试案例实践(一)
  6. Servlet(七)生成验证码
  7. android利用jdk制作签名
  8. Asp.net mvc 知多少(六)
  9. firefox在引入vue.js后不支持e=e||window.event的解决办法
  10. 一句Python,一句R︱pandas模块——高级版data.frame
  11. 【English】十、"谓语的地方"看到有两个动词:I go say hello.、非谓语形式
  12. centos7安装sonarqube6.7 代码质量管理平台
  13. python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战
  14. 第9章 应用层(4)_超文本传输协议HTTP
  15. druid使用
  16. secureCRT连不上虚拟机上的ubuntu
  17. Drupal网站报错:PDOException: in lock_may_be_available()
  18. 20145207《Java程序设计》实验一(Java开发环境的熟悉)实验报告
  19. bzoj1030 AC自动机+dp
  20. Parsing Netflow using Kibana via Logstash to ElasticSearch

热门文章

  1. Java - XPath解析爬取内容
  2. Java基础(五)面对对象
  3. input的属性用法介绍
  4. 将ojdbc 添加到maven
  5. Java Struts2 (四)
  6. SQLServer中取当前年,月,日,时,分,秒
  7. as3.2版本中中jar生成方法
  8. seo搜索引擎优化
  9. pymsql模块使用
  10. C#启动外部程序(进程)