Java8 lambda函数的应用

java.util.Comparator

package test;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

import org.junit.Before;
import org.junit.Test;

/**
 * 测试Java8 lambda 函数的应用:java.util.Comparator,
 * Comparator的静态方法comparing()很好用,不用构建Comparator的匿名内部类
 * 
 * @author ray.sun
 *
 */
public class ComparatorTest {

	private List<Student> students;

	@Before
	public void setUp() {
		students = Arrays.asList(
				new Student("小明", 10, 130), 
				new Student("小军", 9, 125), 
				new Student("小红", 10, 132),
				new Student("小飞", 8, 115),
				new Student("小雨", 12, 140));
	}

	@Test
	public void 根据年龄排序() {
		students.sort(Comparator.comparing(Student::getAge));
		print();
	}
	
	/*
	 * 默认是升序
	 */
	@Test
	public void 根据年龄降序排序(){
		students.sort(Comparator.comparing(Student::getAge, (a1, a2) -> Integer.compare(a2, a1)));
		print();
	}

	private void print(){
		System.out.println(students);
	}
	
	/*
	 * 构建一个学生类来测试排序
	 */
	class Student {
		private String name;
		private int age;
		private double height;

		public Student() {
		}

		public Student(String name, int age, double height) {
			this.name = name;
			this.age = age;
			this.height = height;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		public double getHeight() {
			return height;
		}

		public void setHeight(double height) {
			this.height = height;
		}

		@Override
		public String toString() {
			return "name=" + name + ", age=" + age + ", height=" + height + "] \n";
		}

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值