list<map>排序
@Test
public void test_when_test1() throws Exception {
String[] strs = {"e", "ee", "ea", "ei", "ie", "i", "y", "e", "e", "ea", "a", "e", "ir", "ar", "or", "ear", "e", "a", "o", "u", "or", "er", "oo", "o", "u", "ew", "ui", "oe", "ou", "oo", "oul", "u", "o", "a", "al", "au", "aw", "or", "oar", "ore", "ar", "oor", "ou", "al", "ar", "a", "o", "u", "ou", "a", "ai", "ay", "ei", "i", "y", "oy", "oi", "o", "oa", "oe", "ow", "ou", "ow", "ear", "ere", "ea", "eer", "are", "air", "ear", "ere", "our", "oor", "ure"};
log.info("=====>strs.length: " + strs.length);
List<String> list = Arrays.asList(strs);
Set set = new HashSet(list);
Object[] strsvm = set.toArray(new String[]);
Arrays.sort(strsvm);
List<Object> strsvmDm = Arrays.asList(strsvm);
List<Map> strings = new TreeList();
for (int i = ; i < strsvm.length; i++) {
Object o = strsvm[i];
int count = ;
Map map = new TreeMap();
for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
String next = iterator.next();
if (next.matches(o.toString())) {
count++;
}
}
if (count == ) count = ;
map.put("count", count);
map.put("value", o);
strings.add(map); }
if (null != strings&& strings.size()>) {
Collections.sort(strings,new Comparator<Map>() {
@Override
public int compare(Map o1, Map o2) {
int ret = ;
//比较两个对象的顺序,如果前者小于、等于或者大于后者,则分别返回-1/0/1
ret = o1.get("count").toString().compareTo(o2.get("count").toString());//逆序的话就用o2.compareTo(o1)即可
return ret;
}
});
}
// 输出
int sum = ;
for (Iterator<Map> iterator = strings.iterator(); iterator.hasNext(); ) {
Map next = iterator.next();
// log.warn("=====>next: " + next);
Object vmCount = next.get("count");
Object value = next.get("value");
System.out.print("=====>value: " + value+" \t\t"+vmCount);
Integer vmCountInt = Integer.valueOf(vmCount.toString());
sum = sum + vmCountInt;
System.out.println();
} }
list<map>排序的更多相关文章
- Java Map排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...
- C++ map排序(按照value值排序)_glp_hit_新浪博客
C++ map排序(按照value值排序)_glp_hit_新浪博客 C++ map排序(按照value值排序) (2012-07-12 14:19:51) 转载▼ 标签: ...
- STL容器——对map排序
STL容器(三)——对map排序 对于map的排序问题,主要分为两部分:根据key排序:根据value排序.下面我们就分别说一下~ 1. 根据key进行排序 map默认按照key进行升序排序 ,和输入 ...
- Java | Map排序,工具类改进
package util; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; ...
- Map排序
HashMap: 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度.HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 ...
- Map排序——按key排序,按value排序
注:转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5959279.html 上一篇博文谈到了集合类的自定义排序方式,那么进一步扩展开来,与集合同等重要的Map有 ...
- Map排序(按key/按value)
package com.abc.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collecti ...
- Map 排序
/** * 通过map 的 value 排序,并返回排序后的第一个条目 * * @param m 待排序集合 * @param desc true:降序排序,false:升序排序 * @return ...
- stl之map 排序
排序问题,STL中默认是采用小于号来排序的,因为设置int等类型做key,它本身支持小于号运算,在一些特殊情况,比如关键字是一个结构体,涉及到排序就会出现问题,因为它没有小于号操作,insert等函数 ...
- java 对map排序
public static Map<String, String> sortMapByKey(Map<String, String> map) { if (map == nul ...
随机推荐
- 20145109竺文君、20145106石晟荣 java实验三
重构的概念:重构(Refactoring)就是通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 首先由zwj在<git.oschina.net& ...
- Android项目开发一
Android项目开发一 进度计划 1.第一周 开源中国注册账号:http://my.oschina.net/u/2511208,并上传Android HelloWorld程序代码 搭建Andro ...
- 微内核VS宏内核【转】
本文转载自:https://segmentfault.com/a/1190000002711544 内核按照体系结构分为两类 : 微内核(microkernel)与宏内核(macrokernel). ...
- Android内核和Linux内核的区别
1.Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库.每个Android应用都运行在自己的进程上,享有Dalvik虚拟机 ...
- 【第十五章】 springboot + pojo默认值设置
我们有时需要给POJO设置默认值 pojo设置(推荐) 1.User package com.xxx.firstboot.domain; import lombok.Getter; import lo ...
- RMQ 区间最大值 最小值查询
/*RMQ 更新最小值操作 By:draymonder*/ #include <iostream> #include <cstdio> using namespace std; ...
- C# 用Linq查询DataGridView行中的数据是否包含(各种操作)
http://blog.csdn.net/xht555/article/details/38685845 https://www.cnblogs.com/wuchao/archive/2012/12/ ...
- ASP.NET MVC & Web API项目中集成MEF
1.实现方式 //WebApi需要实现的接口 System.Web.Http.Dependencies.IDependencyResolver //MVC需要实现的接口 System.Web.Mvc. ...
- 下列java代码中的变量a、b、c分别在内存的______存储区存放。
class A{ private String a = "aa"; public boolean methodB(){ String b = "sb"; fin ...
- 用python生成器实现杨辉三角
先看杨辉三角的形态: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 上学的时候大多是用c语言的两层for循环在实现,现在我们尝试用生成器来实现. 先说思路:我 ...