直接贴代码:
package com.c8a.lambda; import org.junit.Test; import java.util.Comparator; import java.util.function.Consumer; import java.util.function.Supplier; public class Lamabda { //lambda使用 //语法格式一:无参,无返回值 @Test public void test1() { Runnable r1 = new Runnable() { @Override public void run() { System.out.println("hello lambda"); } }; r1.run(); System.out.println("************************"); Runnable r2 = () -> System.out.println("hello lambda2"); r2.run(); } //语法格式二:Lambda 需要一个参数,但是没有返回值。 @Test public void test2() { ConsumerstringConsumer = new Consumer () { @Override public void accept(String s) { System.out.println(s); } }; stringConsumer.accept(" Consumer stringConsumer = new Consumer ()"); System.out.println("************************"); Consumer stringConsumer1 = (String s) -> { System.out.println(s); }; stringConsumer1.accept("System.out::println;"); } //语法格式三:数据类型可以省略,因为可由编译器推断得出,称为“类型推断“ @Test public void test3() { Consumer stringConsumer1 = (s) -> { System.out.println(s); }; stringConsumer1.accept("System.out::println;"); } //语法格式四:Lambda 若只需要一个参数时,参数的小括号可以省略 @Test public void test4() { Consumer stringConsumer1 = s -> { System.out.println(s); }; stringConsumer1.accept("System.out::println;"); } //语法格式五:Lambda需要两个或以上的参数,多条执行语句,并且可以有返回值 @Test public void test5() { Comparator integerComparator = new Comparator () { @Override public int compare(Integer o1, Integer o2) { System.out.println(o1); System.out.println(o2); return o1.compareTo(o2); } }; int compare = integerComparator.compare(10, 20); System.out.println(compare); System.out.println("************************"); Comparator integerComparator1 = ((o1, o2) -> { System.out.println(o1); System.out.println(o2); return o1.compareTo(o2); }); int compare1 = integerComparator1.compare(20, 10); System.out.println(compare1); } //语法格式六:当Lambda 只有一条语句时,return 与大括号著有,都可以省略 @Test public void test6() { Consumer stringConsumer1 = System.out::println; stringConsumer1.accept("System.out::println;"); System.out.println("************************"); Comparator integerComparator2 = Integer::compare; int compare = integerComparator2.compare(100, 200); System.out.println(compare); } //java内置四大核心函数 //消费型接口 Consumer void accept(T t) //供给型接口 Supplier T get() //函数型接口 Function R apply(T t) //断定型接口 Predicate boolean test(T t) @Test public void test7() { } @Test public void test8() { } @Test public void test9() { } @Test public void test10() { Comparator compare = String::compareTo; System.out.println(compare.compare("掐死","气昂昂")); } //对象::实例方法名 //类 ::静态方法名 //类: :实例方法名 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)