文档章节

集合排序

h
 hello-k
发布于 2017/08/08 16:59
字数 234
阅读 8
收藏 0

1. Classic Comparator example

// 
Comparator<Type> byName = new Comparator<Type>() {
	@Override
	public int compare(Type o1, Type o2) {
		return o1.getName().compareTo(o2.getName());
	}
};
// Lambda
Comparator<Type> byName =(Type o1, Type o2)->o1.getName().compareTo(o2.getName());

2. 用 Collections.sort

List<Type> collection = new ArrayList<>();
Collections.sort(collection , new Comparator<Type>() {
	@Override
	public int compare(Type o1, Type o2) {
		return o1.getSome() - o2.getSome();
	}
});

// List.sort() since Java 8
collection .sort(new Comparator<Developer>() {
	@Override
	public int compare(Type o1, Type o2) {
		return o2.getSome() - o1.getSome();
	}
});

//lambda here!
collection.sort((Type o1, Type o2)->o1.getSome()-o2.getSome());

//java 8 only, lambda also, to print the List
collection.forEach((o)->System.out.println(o));


//Lambda expression to sort a List using their salary.
Comparator<Type> salaryComparator = (o1, o2)->o1.getSalary().compareTo(o2.getSalary());
listDevs.sort(salaryComparator);

//倒序
//Lambda expression to sort a List using their salary, reversed order.
Comparator<Developer> salaryComparator = (o1, o2)->o1.getSalary().compareTo(o2.getSalary());
listDevs.sort(salaryComparator.reversed());

3.Map排序

3.1将Map转成TreeMap,使用默认排序

Map<String, String> treeMap = new TreeMap<String, String>(unsortMap);

3.1.1 自定义排序

Map<Integer, String> treeMap = new TreeMap<Integer, String>(
                new Comparator<Integer>() {

                    @Override
                    public int compare(Integer o1, Integer o2) {
                        return o2.compareTo(o1);
                    }

                });
/* For Java 8, try this lambda
Map<Integer, String> treeMap = new TreeMap<>(
		                (Comparator<Integer>) (o1, o2) -> o2.compareTo(o1)
		        );
*/

treeMap.putAll(unsortMap);

 

© 著作权归作者所有

上一篇: Linux 开启端口
h
粉丝 0
博文 54
码字总数 10749
作品 0
成都
私信 提问

暂无文章

OSChina 周五乱弹 ——不知道假装开心,装的像么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :天黑了 你很忧愁, 你说世界上, 找不到四块五的妞, 行走在凌晨两点的马路上, 你疲倦地拿着半盒黄鹤楼。#今日歌曲推荐# 《四块...

小小编辑
今天
2.2K
16
64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
69
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
32
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
119
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部