lambda定义:lambda是一个可传递的代码块,可以在以后执行一次或多次。
作用:可以灵活的改变方法中的执行过程,大大缩减代码量。
实例:
package test;
import java.awt.Event;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.Timer;
/**
* @author HRX
* @version 创建时间:2018年9月11日 下午2:45:10
* 类说明
*/
public class ImplementTest{
private int salary;
private int bonus;
public ImplementTest() {
}
public ImplementTest(int num , int bon) {
this.salary = num;
this.bonus = bon;
}
// public int compareTo(ImplementTest implementTest,ImplementTest implementTest1) {
// // TODO Auto-generated method stub
// return Integer.compare(implementTest.bonus, implementTest.bonus);
// }
public static class action implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("......"+new Date());
Toolkit.getDefaultToolkit().beep();
}
}
public static void main(String[] args) {
ArrayList<ImplementTest> arrayList = new ArrayList<>();
ImplementTest i1 = new ImplementTest(1,10);
ImplementTest i2 = new ImplementTest(3,20);
ImplementTest i3 = new ImplementTest(6,30);
ImplementTest i4 = new ImplementTest(10,40);
ImplementTest i5 = new ImplementTest(5,50);
arrayList.add(i1);
arrayList.add(i2);
arrayList.add(i3);
arrayList.add(i4);
arrayList.add(i5);
Comparator<ImplementTest> c = null ;
// arrayList.sort(c);
Collections.sort(arrayList , (n1 , n2) -> n1.salary - n2.salary);
for(ImplementTest i : arrayList)
System.out.println(i.salary);
// ActionListener a = new action();
// Timer t = new Timer(1000, event -> {System.out.println("......"+new Date());
// Toolkit.getDefaultToolkit().beep();});
// t.start();
// JOptionPane.showMessageDialog(null, "Stop?");
// System.exit(0);
}
}
从代码中可以看出,如果想跟据类ImplementTest的salary进行排序,则可使用
Collections.sort(arrayList , (n1 , n2) -> n1.salary - n2.salary);
如果想使用 类ImplementTest的bonus进行排序,则可使用
Collections.sort(arrayList , (n1 , n2) -> n1.bonus - n2.bonus);
其他的类似,就不在这一一列举。