您的位置:首页 > 汽车 > 新车 > 经典重庆论坛_一个完整的樱花html代码_武汉seo公司出 名_广告推广文案

经典重庆论坛_一个完整的樱花html代码_武汉seo公司出 名_广告推广文案

2024/12/28 13:01:12 来源:https://blog.csdn.net/blamep/article/details/143618450  浏览:    关键词:经典重庆论坛_一个完整的樱花html代码_武汉seo公司出 名_广告推广文案
经典重庆论坛_一个完整的樱花html代码_武汉seo公司出 名_广告推广文案

Lambda表达式

lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。

Lambda表达式的基本语法:

(parameters) -> expression 或 (parameters) ->{ statements; }

函数式接口

定义:如果一个接口只有一个抽象方法,那么该接口就是一个函数式接口

 interface NoParameterNoReturn {//注意:只能有一个抽象方法void test();}

因为还是一个抽象方法,所以这个也是可以的 

interface NoParameterNoReturn {void test();default void test2() {System.out.println("--------");}}

 

Lambda表达式的基本使用

1.无返回值无参数

//无返回值无参数
@FunctionalInterface
interface NoParameterNoReturn {void test();
}
public class lambdaTest {public static void main(String[] args) {NoParameterNoReturn noParameterNoReturn=new NoParameterNoReturn() {@Overridepublic void test() {System.out.println("重写test方法");}};System.out.println("------------");NoParameterNoReturn noParameterNoReturn1=()-> System.out.println("重写test方法");noParameterNoReturn1.test();}

2.无返回值一个参数

//无返回值一个参数
@FunctionalInterface
interface OneParameterNoReturn {void test(int a);
}
public class lambdaTest {public static void main(String[] args) {OneParameterNoReturn oneParameterNoReturn=new OneParameterNoReturn() {@Overridepublic void test(int a) {System.out.println(a);}};//OneParameterNoReturn oneParameterNoReturn1=(int a)-> System.out.println(a);OneParameterNoReturn oneParameterNoReturn1=a-> System.out.println(a);oneParameterNoReturn1.test(15);}

 3.无返回值多个参数

//无返回值多个参数
@FunctionalInterface
interface MoreParameterNoReturn {void test(int a,int b);
}
public class lambdaTest {public static void main(String[] args) {MoreParameterNoReturn moreParameterNoReturn=new MoreParameterNoReturn() {@Overridepublic void test(int a, int b) {System.out.println(a+b);}};//MoreParameterNoReturn moreParameterNoReturn1=(int a,int b)-> {System.out.println(a+b);};MoreParameterNoReturn moreParameterNoReturn1=(a,b)-> System.out.println(a+b);moreParameterNoReturn1.test(5,4);}

4.有返回值无参数

//有返回值无参数
@FunctionalInterface
interface NoParameterReturn {int test();
}
public class lambdaTest {public static void main(String[] args) {NoParameterReturn noParameterReturn=new NoParameterReturn() {@Overridepublic int test() {return 0;}};//NoParameterReturn noParameterReturn1=()->{return 10;};NoParameterReturn noParameterReturn1=()->10;System.out.println(noParameterReturn1.test());}

5.有返回值一个参数

//有返回值一个参数
@FunctionalInterface
interface OneParameterReturn {int test(int a);
}
public class lambdaTest {public static void main(String[] args) {OneParameterReturn oneParameterReturn=new OneParameterReturn() {@Overridepublic int test(int a) {return 0;}};//OneParameterReturn oneParameterReturn1=(int a)->{return a;};OneParameterReturn oneParameterReturn1=(a)->a;System.out.println(oneParameterReturn.test(10));}

6.有返回值多参数

//有返回值多参数
@FunctionalInterface
interface MoreParameterReturn {int test(int a,int b);
}
public class lambdaTest {public static void main(String[] args) {MoreParameterReturn moreParameterReturn=new MoreParameterReturn() {@Overridepublic int test(int a, int b) {return a+b;}};//MoreParameterReturn moreParameterReturn1=(int a,int b)->{return a/b;};MoreParameterReturn moreParameterReturn1=(a,b)->a/b;System.out.println(moreParameterReturn1.test(15, 5));}

Lambda在集合当中的使用

对应的接口新增的方法
CollectionremoveIf() spliterator() stream() parallelStream() forEach()

List

replaceAll() sort()
MapgetOrDefault() forEach() replaceAll() putIfAbsent() remove() replace() computeIfAbsent() computeIfPresent() compute() merge()

List接口

public class lambdaTest {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("abcd");list.add("zko");list.add("hello");list.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});System.out.println("=========");list.forEach(s -> System.out.println(s));System.out.println("=====排序====");/*list.sort(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.compareTo(o2);}});*/list.sort((o1,o2) -> o1.compareTo(o2));list.forEach(s -> System.out.println(s));}

Map接口

public class lambdaTest {public static void main(String[] args) {HashMap<String,Integer> map = new HashMap<>();map.put("hello",3);map.put("abc",5);map.put("def",2);/*map.forEach(new BiConsumer<String, Integer>() {@Overridepublic void accept(String s, Integer integer) {System.out.println("key: "+s +" val: "+integer);}});*/map.forEach((key,val)->System.out.println("key: "+key +" val: "+val));}

 希望能对大家有所帮助!!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com