当前位置: 首页 > news >正文

电商网站策划物流门户网站开发 报价

电商网站策划,物流门户网站开发 报价,WordPress禁止多ip,网页升级紧急通知中Lambda 表达式 文章目录 Lambda 表达式什么是 Lambda 表达式?怎么使用?1 基本语法:2 箭头符号:3 代码演示:4 注意事项 函数式接口1 什么是函数式接口2 常见函数式接口 方法引用(了解)1 什么是方法引用 什么是 Lambda 表达式? Lambda表达式#xff1a;特殊的匿名内部类特殊的匿名内部类语法更简洁。 允许把函数作为一个方法的参数函数作为方法参数传递将代码像数据一样传递。 怎么使用? 1 基本语法: 函数式接口 变量名 (参数1参数2...) - {//方法体};2 箭头符号: - (箭头操作符), - 将表达式分成两部分 左侧(参数1参数2…)表示参数列表右侧{}内部是方法体 3 代码演示: public class TestLambda {public static void main(String[] args) {//Lambda表达式特殊的匿名内部类语法更简洁。//示例1: Runnable接口//匿名内部类Runnable runnable1 new Runnable() {Overridepublic void run() {System.out.println(子线程1 开始执行...);}};//简化: Lambda表达式Runnable runnable2 ()-{System.out.println(子线程2 开始执行...);};//使用new Thread(runnable1).start();new Thread(runnable2).start();//简写: 方法体只有一行代码时new Thread(()- System.out.println(子线程3 开始执行...));//示例2: Comparator比较器//匿名内部类ComparatorInteger cmp1 new ComparatorInteger() {Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}};//简化: Lambda表达式ComparatorInteger cmp2 (o1, o2) - o1 - o2;TreeSetInteger treeSet1 new TreeSet(cmp1);TreeSetInteger treeSet2 new TreeSet(cmp2);} }IDEA 快捷键: 在可以使用 Lambda表达式的位置, 按住 Alt Enter , 即可将原代码用 Lambda表达式书写 4 注意事项 形参列表的数据类型会自动推断。如果形参列表为空只需保留() 。如果形参只有1个()可以省略只需要参数的名称即可。如果执行语句只有一句且无返回值{}可以省略 若有返回值则若想省去{}则必须同时省略return且执行语句也保证只有一句。Lambda不会生成一个单独的内部类文件。 函数式接口 1 什么是函数式接口 如果一个接口只有一个抽象方法则该接口称之为函数式接口函数式接口可以使用Lambda表达式Lambda表达式会被匹配到这个抽象方法上 。FunctionalInterface 注解检测接口是否符合函数式接口。 代码示例: interface: FunctionalInterface //函数式接口: 只有一个抽象方法 public interface Usb {void service(); }Test: public class TestUsb {public static void main(String[] args) {//匿名内部类Usb usb1 new Usb() {Overridepublic void service() {System.out.println(连接成功, 开始工作...);}};//Lambda表达式Usb usb2 () - System.out.println(连接成功, 开始工作...);} }2 常见函数式接口 函数式接口参数类型返回类型说明ConsumerT 消费型接口Tvoidvoid accept(T t);对类型为T的对象应用操作SupplierT 供给型接口无TT get(); 返回类型为T的对象FunctionT,R 函数型接口TRR apply(T t);对类型为T的对象应用操作并返回类型为R类型的对象。PredicateT 断言型接口Tbooleanboolean test(T t);确定类型为T的对象是否满足条件并返回boolean类型。 TestConsumer: public class TestConsumer {public static void main(String[] args) {//匿名内部类happy(new ConsumerDouble() {Overridepublic void accept(Double money) {System.out.println((聚餐吃饭, 花费: money));}},1000);//Lambda表达式happy(money- System.out.println(聚餐吃饭, 花费:money),2000);}public static void happy(ConsumerDouble consumer, double money) {consumer.accept(money);} }TestSupplier: public class TestSupplier {public static void main(String[] args) {//匿名内部类//获取5个100以内的随机数int[] nums1 getNums(new SupplierInteger() {Overridepublic Integer get() {return new Random().nextInt(100);}},5);System.out.println(Arrays.toString(nums1));//Lambda表达式//获取10个1000以内的随机数System.out.println(Arrays.toString(getNums(() - new Random().nextInt(1000),10)));}public static int[] getNums(SupplierInteger supplier, int length) {int[] arr new int[length];for (int i 0; i arr.length; i) {arr[i] supplier.get();}return arr;} }TestFunction: public class TestFunction {public static void main(String[] args) {//匿名内部类String s1 handleString(new FunctionString, String() {Overridepublic String apply(String s) {return s.toUpperCase();}}, hello);System.out.println(s1);//Lambda表达式System.out.println(handleString(s - s.toLowerCase(),HELLO));}public static String handleString(FunctionString, String function, String s) {return function.apply(s);} }TestPredicate: public class TestPredicate {public static void main(String[] args) {ArrayListString list new ArrayList();list.add(张三);list.add(张三锋);list.add(张耕耘);list.add(韩羽);list.add(张利);list.add(田美丽);//匿名内部类ListString list1 filter(new PredicateString() {Overridepublic boolean test(String s) {return s.startsWith(张);}}, list);System.out.println(list1);//Lambda 表达式ListString list2 filter(s - s.startsWith(田), list);System.out.println(list2);}public static ListString filter(PredicateString p, ListString src) {ArrayListString list new ArrayList();for (String s : src) {if (p.test(s)){list.add(s);}}return list;} }方法引用(了解) 1 什么是方法引用 方法引用是Lambda表达式的一种简写形式。 如果Lambda表达式方法体中只是调用一个特定的已经存在的方法这个方法的参数和返回值和接口中的方法的参数和返回值保持一致 代码演示: 形式1 : 对象::实例方法 public class TestMethodRef {public static void main(String[] args) {ConsumerString consumer1 s - System.out.println(s);ConsumerString consumer2 System.out::println;consumer1.accept(xxx);consumer2.accept(yyy);} }res: xxx yyy
http://www.hkea.cn/news/14298477/

相关文章:

  • 设计企业品牌网站最大上传大小wordpress
  • 备案 非网站徐州峰华网架公司
  • 商城网站建设制作注册公司名字推荐
  • 永安城乡建设局网站wordpress 4.8中文版
  • 网站上推广游戏怎么做企业做网站大概需要多少钱
  • 在北京注册公司在哪个网站上网站开发基于百度地图
  • 2014网站推广方案手机怎么制作游戏
  • 公司建设网站有什么好处qq人脸解冻自助网站
  • 濮阳推广公司免费发布网站seo外链
  • 学做家常菜的网站有哪些怎么形容网站做的很好
  • 网上建设网站需要做的工作智能手机网站建设
  • 住房和城乡建设部网站办事大厅个人网站备案名称填写的注意事项
  • windows2008 iis 网站配置手机网站自适应分辨率
  • 一家专门做衣服的网站建盏金盏能不能喝茶
  • 网站服务网页托管网站
  • 怎样做企业手机网站建设广州个人网站制作
  • 佛山家具网站建设公司广州网站设计我选刻
  • 神木网站建设设计快速做网站费用
  • 网站微信建设运维培训班做视频网站空间要多大
  • 网站建设优化培训班软件开发前景分析
  • wordpress文章阅读更多按钮广东网站seo
  • 爱站网源码wordpress图片暗箱
  • 自己建设网站赚钱个人微信小程序怎么赚钱
  • 西安企业网站建设多少钱重庆网站制作工作室
  • 企业网站的建立的目的做证券考试的网站
  • 团结湖网站建设生成静态网站
  • 网站和浏览器不兼容seo免费软件
  • 石家庄站在哪个区陕西省建设资质是哪个网站
  • 专业网站建设分为8步网站淘客怎么做
  • 商城网站开发背景建立网站底线