得到java list 中重复的部分

摘要: 怎么得到在java list中重复的item呢, 理论上有很多种方法,比如循环比较,遍历,这是最常用的方法, 但事实上还可以采用 可以采用 Collections.frequency 和 Map 来实现。

怎么得到在java list中重复的item呢, 理论上有很多种方法,比如循环比较,遍历,这是最常用的方法, 但事实上还可以采用 可以采用 Collections.frequency 和 Map 来实现。

package com.yihaomen.duplist;

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("找出重复的a记录数");
	System.out.println("a : " + Collections.frequency(list, "a"));
 
	System.out.println("找出所有重复的记录数");
	Set uniqueSet = new HashSet(list);
	for (String temp : uniqueSet) {
		System.out.println(temp + ": " + Collections.frequency(list, temp));
	}
 
	System.out.println("用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("对Map进行排序,按key排序");
	Map treeMap = new TreeMap(map);
	printMap(treeMap);
 
  }
 
  public static void printMap(Map map){
 
	for (Map.Entry entry : map.entrySet()) {
		System.out.println("Key : " + entry.getKey() + " Value : "
			+ entry.getValue());
	}
 
  }
 
}



会得到如下结果:
找出重复的a记录
a : 4
找出所有重复的记录
d: 1
b: 2
c: 2
a: 4
用map计数
Key : d Value : 1
Key : b Value : 2
Key : c Value : 2
Key : a Value : 4
对Map进行排序
Key : a Value : 4
Key : b Value : 2
Key : c Value : 2
Key : d Value : 1


有人说,不推荐用 Collections.frequency 的方式来得到重复item的计数,所以,代码中也给出了用Map的方式来得到重复的item的计数,并排序打印出来。

上一篇: mybatis SqlSessionDaoSupport的使用(附代码下载)
下一篇: 在django template 中实现乘法,除法运算
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号