博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java统计List中的元素重复出现的次数和对map按key或键值排序
阅读量:5115 次
发布时间:2019-06-13

本文共 2392 字,大约阅读时间需要 7 分钟。

package cn.php;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class CountList {	public static void main(String[] args) {		List
strs = Arrays.asList("a", "b", "c", "d", "e", "a", "a", "a", "a", "b", "b", "b"); Map
map = new HashMap
(); Set
set = new HashSet
(strs); for (String str : set) { for (String lstr : strs) { if (str.equals(lstr)) { if (map.containsKey(str)) { Integer count = map.get(str); count++; map.put(str, count); } else { map.put(str, 1); } } } } //printMap(map); Map
sortMap = sortMapByValue(map); printMap(sortMap); } private static Map
sortMapByValue(Map
map) { List
> mapList = new ArrayList
>( map.entrySet()); Collections.sort(mapList, new Comparator
>() { @Override public int compare(Entry
o1, Entry
o2) { return o1.getValue()-o2.getValue(); } }); Map
result = new LinkedHashMap
(); for(Map.Entry
entry:mapList){ result.put(entry.getKey(), entry.getValue()); } return result; } public static void printMap(Map
map) { for (Map.Entry
entry : map.entrySet()) { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); } }}
public Map
sortMapByKey(Map
oriMap) { if (oriMap == null || oriMap.isEmpty()) { return null; } Map
sortedMap = new TreeMap
( new Comparator
() { public int compare(String key1, String key2) { int intKey1 = 0, intKey2 = 0; try { intKey1 = getInt(key1); intKey2 = getInt(key2); } catch (Exception e) { intKey1 = 0; intKey2 = 0; } return intKey1 - intKey2; } }); sortedMap.putAll(oriMap); return sortedMap; } private int getInt(String str) { int i = 0; try { Pattern p = Pattern.compile("^\\d+"); Matcher m = p.matcher(str); if (m.find()) { i = Integer.valueOf(m.group()); } } catch (NumberFormatException e) { e.printStackTrace(); } return i; }

 

 

转载于:https://www.cnblogs.com/dapeng520/p/4610081.html

你可能感兴趣的文章
redis总结
查看>>
解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问...
查看>>
STM32F10x_RTC秒中断
查看>>
[原创]网站HTML,XHTML,XML,WML,CSS等测试验证工具介绍
查看>>
4-28
查看>>
NEC的学习笔记
查看>>
display:none和visiblity:hidden区别
查看>>
敏捷练习 讨论 谁是你生命中的贵人
查看>>
ZOJ 3502 Contest <状态压缩 概率 DP>
查看>>
css3选择器
查看>>
Nginx(PHP/fastcgi)的PATH_INFO问题
查看>>
PowerShell 转码函数 Default->UTF8
查看>>
[译]git fetch
查看>>
[译]Ocelot - Headers Transformation
查看>>
洛谷 P1195 口袋的天空
查看>>
Python实现常见算法[3]——汉罗塔递归
查看>>
EM算法笔记
查看>>
在Orderby子句中使用CASE 语句
查看>>
extern "C" 的作用
查看>>
Socket中常见的几个转换函数(htonl,htons,ntohl,ntohs,inet_addr,inet_ntoa)
查看>>