本文演示如何使用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

【转】计算Java List中的重复项出现次数的更多相关文章

  1. 计算Java List中的重复项出现次数

    import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List; ...

  2. 对Java数组中去除重复项程序分析

    我作为一个Java菜鸟,只会用简单的办法来处理这个问题.如果有大神看到,请略过,感激不尽! 所以首先先分析这道题目:数组中重复的数据进行删除,并且要让数组里的数据按原来的顺序排列,中间不能留空. 既然 ...

  3. Java实现 LeetCode 80 删除排序数组中的重复项 II(二)

    80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

  4. Java实现 LeetCode 26 删除排序数组中的重复项

    26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...

  5. arts打卡 从排序数组中删除重复项

    Algorithm 从排序数组中删除重复项     给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组 ...

  6. LeetCode:删除排序数组中的重复项||【80】

    LeetCode:删除排序数组中的重复项||[80] 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原 ...

  7. JAVA经典题--计算一个字符串中每个字符出现的次数

    需求:  计算一个字符串中每个字符出现的次数 思路: 通过toCharArray()拿到一个字符数组--> 遍历数组,将数组元素作为key,数值1作为value存入map容器--> 如果k ...

  8. [LeetCode] 80. Remove Duplicates from Sorted Array II 有序数组中去除重复项 II

    Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twic ...

  9. [LeetCode] 82. Remove Duplicates from Sorted List II 移除有序链表中的重复项 II

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

随机推荐

  1. 【5】.net WCF 简单实例

    1.创建WCF项目 2.系统自动生成IWcfService // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”. [ServiceContra ...

  2. [编程] C语言变量和数据类型总结练习题

    练习题: 1) 如何用 printf() 输出 short.int.long 类型的整数,请举例说明. 2) 如何用 printf() 输出 float.double 类型的小数,请举例说明. 3) ...

  3. equals()重写

    ** 注意 ** 1.重写equals方法修饰符必须是public,因为是重写的Object的方法. 2.参数类型必须是Object. 3.重写equals方法后最好重写hashCode方法,否则两个 ...

  4. 由ArrayList来深入理解Java中的fail-fast机制

    1. fail-fast简介“快速失败”也就是fail-fast,它是Java集合的一种错误检测机制.某个线程在对collection进行迭代时,不允许其他线程对该collection进行结构上的修改 ...

  5. javascript实现文本框标签验证

    < !DOCTYPE html > <html lang = "en" > <head > <meta charset = "U ...

  6. 深入理解javascript中的Function.prototye.bind

    函数绑定(Function binding)很有可能是你在开始使用JavaScript时最少关注的一点,但是当你意识到你需要一个解决方案来解决如何在另一个函数中保持this上下文的时候,你真正需要的其 ...

  7. [ZOJ1015]:Fishing Net

    题面 Vjudge Sol 给出一个n个点的无向图,询问是否为弦图 做法见上上上篇博客 # include <bits/stdc++.h> # define RG register # d ...

  8. VS code 自定义快捷输入

    本文是从简书复制的, markdown语法可能有些出入, 想看"正版"和更多内容请关注 简书: 小贤笔记 位置 ctrl+shift+p 搜索: snippets 输入类型: 比如 ...

  9. easyui汉化啊!

    <script type="text/javascript" src="__PUBLIC__/jquery-easyui-1.4.4/locale/easyui-l ...

  10. 用C语言指针作为函数返回值

    转载:http://c.biancheng.net/cpp/html/3242.html C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlon ...