【转】计算Java List中的重复项出现次数

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

 

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


输出结果

 

 

[sql] view plain copy
 
  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  
posted @ 2017-07-12 15:58  牧之丨  阅读(2719)  评论(0编辑  收藏  举报