JAva 8-lambda式
2777 ワード
1.目的:コードの簡略化
2.まとめ:lamdbaの仕様、定数パラメータに注意し、インタフェースを実現する
2.まとめ:lamdbaの仕様、定数パラメータに注意し、インタフェースを実現する
package lamdmademo;
import java.time.LocalDate;
import java.util.*;
public class Demo {
public static void main(String[] args) {
Demo demo=new Demo();
//lambda
Integer num=2;
Converter s=(param)-> System.out.println(param+num);
s.convert(3);
LocalDate date=LocalDate.now();
System.out.println(date);
// lambda
List list= new ArrayList<>();
List list2= new ArrayList<>();
list.add("hvfds");
list.add("abref");
list.add("csdrv");
list.add("bbsrd");
list2.add("hasrdb");
list2.add("aasrb");
list2.add("carsb");
list2.add("barvb");
// java7
System.out.println(" java7 ");
demo.sortUsingjdk7(list);
// java8
System.out.println(" java8 ");
demo.sortUsingjdk8(list2);
System.out.println(list);
System.out.println(list2);
//lambda
MathOperation additional=(Integer s1,Integer s2)-> s1+s2 ;
MathOperation device=(Integer s1,Integer s2)->s1/s2;
MathOperation sub=(Integer s1, Integer s2)->s1-s2;
// operate
System.out.println("10+5="+demo.operate(10,5,additional));
System.out.println("10/5="+demo.operate(10,5,device));
System.out.println("10-5="+demo.operate(10,5,sub));
// , , final, final ,
final String hello="HELLO,";
//
SayHello sayHello=message -> System.out.println(hello+message);
//
sayHello.sayMessage("JDK8");
}
// java7
//
public void sortUsingjdk7(List list){
Collections.sort(list, new Comparator() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
}
// java 8
public void sortUsingjdk8(List list){
Collections.sort(list,(s1,s2) -> s1.compareTo(s2));
}
//
interface MathOperation {
int operation(Integer a, Integer b);
}
//
interface SayHello{
void sayMessage(String message);
}
//
interface Converter {
void convert(int i);
}
//
private int operate(Integer a,Integer b,MathOperation mathOperation){
return mathOperation.operation(a,b);
}
}