Java语言利用Collections.sort对Map,List排序
1.main方法包含TreeMap排序1,TreeMap排序2,HashMap排序,List<Integer>排序,List<Bean>排序,List<Map>排序
package com.tao.test; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap; public class Sort {
public static void main(String[] args) {
// TreeMap排序1
Map<String, String> treeMap = new TreeMap<String, String>(new Comparator<String>() {
public int compare(String o1, String o2) {
// 升序排序
return o1.compareTo(o2);
}
});
treeMap.put("c", "ccccc");
treeMap.put("a", "aaaaa");
treeMap.put("b", "bbbbb");
treeMap.put("d", "ddddd");
// 排序后输出
for (String key : treeMap.keySet()) {
System.out.println("Key=" + key + ", Value=" + treeMap.get(key));
} // TreeMap排序2
Map<String, Integer> treeMap2 = new TreeMap<String, Integer>();
treeMap2.put("d", );
treeMap2.put("b", );
treeMap2.put("a", );
treeMap2.put("c", );
// 转换成list
List<Map.Entry<String, Integer>> treeList = new ArrayList<Map.Entry<String, Integer>>(treeMap2.entrySet());
Collections.sort(treeList, new Comparator<Map.Entry<String, Integer>>() {
// 升序排序
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
// 排序后输出
for (Map.Entry<String, Integer> m : treeList) {
System.out.println("Key=" + m.getKey() + ", Value=" + m.getValue());
} // HashMap排序
Map<String, Integer> hashMap = new HashMap<String, Integer>();
hashMap.put("c", );
hashMap.put("a", );
hashMap.put("b", );
hashMap.put("d", );
List<Map.Entry<String, Integer>> hashList = new ArrayList<Map.Entry<String, Integer>>(hashMap.entrySet());
Collections.sort(hashList, new Comparator<Map.Entry<String, Integer>>() {
// 升序排序
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
// 排序后输出
for (Map.Entry<String, Integer> m : hashList) {
System.out.println("Key=" + m.getKey() + ", Value=" + m.getValue());
} // List<Integer>排序
List<Integer> nums = new ArrayList<Integer>();
nums.add();
nums.add();
nums.add();
nums.add();
// 升序排序(默认)
Collections.sort(nums);
// 排序后输出
System.out.println(nums); // List<Bean>排序
List<User> users = new ArrayList<User>();
users.add(new User(, "jack"));
users.add(new User(, "tom"));
users.add(new User(, "keck"));
users.add(new User(, "tao"));
// id升序排序
Collections.sort(users);
// 排序后输出
for (User user : users) {
System.out.println(user.getId() + "," + user.getName());
} // List<Map>排序
List<Map<String, Integer>> listMap = new ArrayList<Map<String, Integer>>();
Map<String, Integer> map = new HashMap<>();
map.put("age", );
map.put("sex", );
listMap.add(map);
Map<String, Integer> map2 = new HashMap<>();
map2.put("age", );
map2.put("sex", );
listMap.add(map2);
Map<String, Integer> map3 = new HashMap<>();
map3.put("age", );
map3.put("sex", );
listMap.add(map3);
// 按照map值排序
Collections.sort(listMap, new Comparator<Map<String, Integer>>() {
@Override
public int compare(Map<String, Integer> o1, Map<String, Integer> o2) {
return o1.get("age").compareTo(o2.get("age"));// age升序排序
}
});
// 排序后输出
for (Map<String, Integer> m : listMap) {
System.out.println(m);
}
}
}
2.List<User>排序的User.java类:
package com.tao.test;
public class User implements Comparable<User>{
private int id;
private String name;
public User(int id, String name) {
super();
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public int compareTo(User o) {
return this.id - o.getId();//id升序排序
}
}
3.运行截图

Java语言利用Collections.sort对Map,List排序的更多相关文章
- Java基础集锦——利用Collections.sort方法对list排序
要想对List进行排序,可以让实体对象实现Comparable接口,重写compareTo方法即可实现按某一属性排序,但是这种写法很单一,只能按照固定的一个属性排序,没变法变化.通过下面这种方法,可以 ...
- python 中的sort 和java中的Collections.sort()函数的使用
x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...
- Java 8 – How to sort a Map
Java 8 – How to sort a Map 1. Quick ExplanationMap result = map.entrySet().stream() .sorted(Map.Entr ...
- 用Java集合中的Collections.sort方法对list排序的两种方法
用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- java中Collections.sort()方法实现集合排序
1.Integer/String泛型的List进行排序 List <Integer> integerlist = new ArrayList<Integer>(); //定 ...
- Java基础操作面试题:Map集合排序 需要TreeMap 构造方法参数有比较器 输入字符串,统计A、B、C、D、出现次数,由高到低输出字母和出现次数,使用Map集合完成此题
Map和Collections是同级别的,不能像List排序那样直接用Collections.sort(new Comparator<?>(){ 复写compara方法}); HashMa ...
- Collections.sort方法对list排序的两种方式
Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断对象,算法则考虑如何进行排序 对于自定义对象,sort()不知道规则,所以无法比较,这种情况下一定 ...
- Java—集合框架 Collections.sort()、Comparable接口和Comparator接口
Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set ...
- Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序
在List的排序中常用的是Collections.sort()方法,可以对String类型和Integer类型泛型的List集合进行排序. 首先演示sort()方法对Integer类型泛型的List排 ...
随机推荐
- 我为什么不用Django而用Flask?
前言 对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架.我这里并不想探讨哪个框架好哪个不好,这个永恒的话题就跟探讨“世界上哪 ...
- conversion vs recommendation
conversion vs recommendation: http://markdisomma.com/2011/06/16/conversation-vs-recommendation/
- 用Webstorm 运行React-native 工程时,出错:xcrun: error: unable to find utility "instruments", not a developer tool or in PATH
解决方法:在 终端执行如下命令 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/ 注意:前提是你已经安装了xcode
- Win8 Pro 64 Install .net3.5 在线升级会遇到错误0x800F0906。
很多人安装Win8后都遇到了无法升级.NET Framework 3.5.1的问题,在线升级会遇到错误0x800F0906. Uninstall Windows update kB: KB296682 ...
- 设计模式——工厂方法模式(Factory Method)
原文地址:http://www.cnblogs.com/Bobby0322/p/4179921.html 介绍 在简单工厂模式中,我们提到,工厂方法模式是简单工厂模式的一个延伸,它属于Gof23中设计 ...
- Flask入门 flask结构 url_for 重定向(一)
Flask入门(一) 1 安装虚拟环境Mac,linux sudo pip install virtualenv ubuntu系统 sudo apt-get install python-virt ...
- OpenSSL.Net 在生产环境中无法正常加载的原因分析与解决 z
http://blog.csdn.net/wangjia184/article/details/6990098 http://www.openssl.org/ 在本地测试好好的代码部署到生产环境后,遇 ...
- Zookeeper的集群配置和Java测试程序
Zookeeper是Apache下的项目之一,倾向于对大型应用的协同维护管理工作.IBM则给出了IBM对ZooKeeper的认知: Zookeeper 分布式服务框架是 Apache Hadoop 的 ...
- pthread的各种同步机制
https://casatwy.com/pthreadde-ge-chong-tong-bu-ji-zhi.html pthread是POSIX标准的多线程库,UNIX.Linux上广泛使用,wind ...
- 新手理解HTML、CSS、javascript之间的关系-修订
几年前写过一篇博文 <新手理解HTML.CSS.javascript之间的关系>,没想到网上出现了不少转载,当时没有太用心,里面的很多内容有待商榷,这里发布重新发布一篇. 网页主要有三部分 ...