【转】计算Java List中的重复项出现次数
2024-08-26 21:25:32
本文演示如何使用Collections.frequency和Map来计算重复项出现的次数。(Collections.frequency在JDK 1.5版本以后支持)
- package com.qiyadeng.core;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import java.util.TreeMap;
- public class CountDuplicatedList {
- public static void main(String[] args) {
- List list = new ArrayList();
- list.add("a");
- list.add("b");
- list.add("c");
- list.add("d");
- list.add("b");
- list.add("c");
- list.add("a");
- list.add("a");
- list.add("a");
- System.out.println("\n例子1 - 计算'a'出现的次数");
- System.out.println("a : " + Collections.frequency(list, "a"));
- System.out.println("\n例子2 - 计算所有对象出现的次数");
- Set uniqueSet = new HashSet(list);
- for (String temp : uniqueSet) {
- System.out.println(temp + ": " + Collections.frequency(list, temp));
- }
- System.out.println("\n例子3 -用Map来计算对象出现的次数");
- Map map = new HashMap();
- for (String temp : list) {
- Integer count = map.get(temp);
- map.put(temp, (count == null) ? 1 : count + 1);
- }
- printMap(map);
- System.out.println("\nMap排序-以key排序");
- Map treeMap = new TreeMap(map);
- printMap(treeMap);
- }
- public static void printMap(Map map) {
- for (Map.Entry entry : map.entrySet()) {
- System.out.println("Key-value : " + entry.getKey() + "- "
- + entry.getValue());
- }
- }
- }
输出结果
- 例子1 - 计算'a'出现的次数
- a : 4
- 例子2 - 计算所有对象出现的次数
- d: 1
- b: 2
- c: 2
- a: 4
- 例子3 -用Map来计算对象出现的次数
- Key-value : d- 1
- Key-value : b- 2
- Key-value : c- 2
- Key-value : a- 4
- Map排序-以key排序
- Key-value : a- 4
- Key-value : b- 2
- Key-value : c- 2
- Key-value : d- 1
最新文章
- Win8换成Win7系统问题小结(修改主板BIOS方法)
- [转] The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing
- [转]TortoiseSVN文件夹及文件图标不显示解决方法
- ABBYY是怎么自定义主窗口的
- Jmeter接口测试案例实践(一)
- Servlet(七)生成验证码
- android利用jdk制作签名
- Asp.net mvc 知多少(六)
- firefox在引入vue.js后不支持e=e||window.event的解决办法
- 一句Python,一句R︱pandas模块——高级版data.frame
- 【English】十、";谓语的地方";看到有两个动词:I go say hello.、非谓语形式
- centos7安装sonarqube6.7 代码质量管理平台
- python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战
- 第9章 应用层(4)_超文本传输协议HTTP
- druid使用
- secureCRT连不上虚拟机上的ubuntu
- Drupal网站报错:PDOException: in lock_may_be_available()
- 20145207《Java程序设计》实验一(Java开发环境的熟悉)实验报告
- bzoj1030 AC自动机+dp
- Parsing Netflow using Kibana via Logstash to ElasticSearch