Lambda表示式語法2
阿新 • • 發佈:2019-01-07
package airycode_java8.nice3; import airycode_java8.nice1.Employee; import org.junit.Test; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * Created by admin on 2019/1/2. */ public class TestLambda { //準備資料 List<Employee> employeeList = Arrays.asList( new Employee("張三",18,9999.99, Employee.Status.FREE), new Employee("李四",38,5555.55,Employee.Status.BUSY), new Employee("王五",50,6666.66,Employee.Status.VOCATION), new Employee("趙六",16,3333.33,Employee.Status.FREE), new Employee("田七",8,7777.77,Employee.Status.BUSY) ); // @Test public void test1(){ Collections.sort(employeeList,(e1,e2)->{ if (e1.getAge() == e2.getAge()) { return e1.getName().compareTo(e2.getName()); } else { return Integer.compare(e1.getAge(),e2.getAge()); } }); for (Employee employee: employeeList) { System.out.println(employee); } } @Test public void test2(){ String result = strHandle("aa", (str) -> str.toUpperCase()); System.out.println(result); } public String strHandle(String string,MyFunction mf){ return mf.getValue(string); } @Test public void test3(){ op(100L,200L,(x,y) -> x+y); } public void op(Long l1,Long l2,MyFunction2<Long,Long> mf){ System.out.println(mf.getValue(l1,l2)); } } package airycode_java8.nice3; /** * Created by admin on 2019/1/2. */ @FunctionalInterface public interface MyFunction { public String getValue(String s); } package airycode_java8.nice3; /** * Created by admin on 2019/1/2. */ @FunctionalInterface public interface MyFunction2<T,R> { public R getValue(T t1,T t2); }