初试java8

排序以及“::”的方法调用

import java.util.LinkedList;
import java.util.List;
import java.util.Comparator;
class fruit{
	String name;
	int weight;
	public fruit(String name,int weight) {
		// TODO Auto-generated constructor stub
		this.name = name;
		this.weight = weight;
	}
	public int getweight() {
		return this.weight;
	}
	public String getName() {
		return this.name;
	}
}
public class test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<fruit> l1 = new LinkedList<fruit>();
		l1.add(new fruit("apple", 15));
		l1.add(new fruit("orange", 15));
		l1.add(new fruit("banan", 15));
		l1.add(new fruit("gargon_furit", 15));
		l1.add(new fruit("pear", 15));
		Comparator<fruit> c = Comparator.comparing(fruit::getweight).reversed();
		l1.sort(c);
		for(int i=0;i<l1.size();i++) {
			System.out.println(l1.get(i).name +"  " + l1.get(i).weight);
		}
	}

}

如上所示,有了Comparetor用法之后特别简单,而且Comparetor提供了“比较器复合”的功能;
比如说排序后的结果如果需要逆序,那就调用reversed方法,还有比较器链,如果水果一样重,还可以接着比较名字,方法是thenComparing();

	Comparator<fruit> c = Comparator.comparing(fruit::getweight).reversed().thenComparing(fruit::getName);

修改之后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值