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

怎么做五合一网站做一个网站美工多少钱

怎么做五合一网站,做一个网站美工多少钱,哈尔滨自媒体公司,响应式网站预览Lambda表达式是Java 8引入的一项重要特性#xff0c;它使得编写简洁、可读和高效的代码成为可能。Lambda表达式本质上是一种匿名函数#xff0c;能够更简洁地表示可传递的代码块#xff0c;用于简化函数式编程的实现。 一、Lambda表达式概述 1. 什么是Lambda表达式 Lambd…Lambda表达式是Java 8引入的一项重要特性它使得编写简洁、可读和高效的代码成为可能。Lambda表达式本质上是一种匿名函数能够更简洁地表示可传递的代码块用于简化函数式编程的实现。 一、Lambda表达式概述 1. 什么是Lambda表达式 Lambda表达式是一种匿名函数表示一段可传递的代码块能够接受参数并返回结果。它是一种函数式接口Functional Interface的实例。函数式接口是仅包含一个抽象方法的接口例如Runnable、Callable、Comparator等。 Lambda表达式的引入旨在简化匿名内部类的使用特别是在集合和流操作中使代码更加简洁和易读。 2. Lambda表达式的语法 Lambda表达式的基本语法如下 (parameters) - expression或 (parameters) - { statements; }具体语法形式包括 无参数() - System.out.println(Hello, World!);一个参数无需括号x - x * x多个参数(x, y) - x y带有参数类型(int x, int y) - x y多行语句(x, y) - { int sum x y; return sum; } 3. Lambda表达式的类型推断 Java编译器能够根据上下文推断Lambda表达式的参数类型因此在大多数情况下可以省略参数类型。例如 ComparatorString comparator (a, b) - a.compareToIgnoreCase(b);在上面的例子中编译器知道Comparator的类型参数是String因此可以推断出a和b都是String类型。 二、使用Lambda表达式的场景 1. 替代匿名内部类 Lambda表达式最常见的用途之一是替代匿名内部类使代码更加简洁。例如在事件处理和线程创建中可以使用Lambda表达式代替匿名内部类。 事件处理 Java 8之前的代码 button.addActionListener(new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {System.out.println(Button clicked!);} });使用Lambda表达式 button.addActionListener(e - System.out.println(Button clicked!));线程创建 Java 8之前的代码 new Thread(new Runnable() {Overridepublic void run() {System.out.println(Thread running);} }).start();使用Lambda表达式 new Thread(() - System.out.println(Thread running)).start();2. 集合操作 Lambda表达式在集合操作中极为有用特别是结合Java 8引入的Stream API可以极大地简化代码并提高可读性。 过滤和映射 Java 8之前的代码 ListString strings Arrays.asList(abc, , bc, efg, abcd, , jkl); ListString filtered new ArrayList(); for (String s : strings) {if (!s.isEmpty()) {filtered.add(s);} }使用Lambda表达式和Stream API ListString strings Arrays.asList(abc, , bc, efg, abcd, , jkl); ListString filtered strings.stream().filter(s - !s.isEmpty()).collect(Collectors.toList());排序 Java 8之前的代码 ListString names Arrays.asList(peter, anna, mike, xenia); Collections.sort(names, new ComparatorString() {Overridepublic int compare(String a, String b) {return a.compareTo(b);} });使用Lambda表达式 ListString names Arrays.asList(peter, anna, mike, xenia); names.sort((a, b) - a.compareTo(b));3. 自定义函数式接口 除了使用已有的函数式接口我们还可以自定义函数式接口并使用Lambda表达式进行实现。 定义函数式接口 FunctionalInterface interface MyFunctionalInterface {void execute(); }使用Lambda表达式实现接口 MyFunctionalInterface myFunction () - System.out.println(Executing...); myFunction.execute();三、Java 8中的其他相关特性 1. 内置函数式接口 Java 8引入了一些常用的函数式接口位于java.util.function包中包括 PredicateT接受一个参数返回boolean。常用于条件判断。FunctionT, R接受一个参数返回一个结果。常用于转换操作。ConsumerT接受一个参数无返回值。常用于执行操作。SupplierT无参数返回一个结果。常用于提供对象。BinaryOperatorT接受两个参数返回一个结果。常用于二元运算。 示例 // Predicate PredicateString isNotEmpty s - !s.isEmpty(); ListString nonEmptyStrings strings.stream().filter(isNotEmpty).collect(Collectors.toList());// Function FunctionString, Integer toLength String::length; ListInteger lengths strings.stream().map(toLength).collect(Collectors.toList());// Consumer ConsumerString print System.out::println; strings.forEach(print);// Supplier SupplierString stringSupplier () - Hello; String s stringSupplier.get();// BinaryOperator BinaryOperatorInteger sum Integer::sum; int result sum.apply(1, 2);2. 方法引用 方法引用是一种更简洁的Lambda表达式写法用于直接引用已有的方法。方法引用的语法有四种形式 静态方法引用ClassName::staticMethod实例方法引用instance::instanceMethod特定类型的任意对象的方法引用ClassName::instanceMethod构造器引用ClassName::new 示例 // 静态方法引用 FunctionString, Integer parseInt Integer::parseInt;// 实例方法引用 String str Hello; SupplierString stringSupplier str::toUpperCase;// 特定类型的任意对象的方法引用 FunctionString, String toUpperCase String::toUpperCase;// 构造器引用 SupplierListString listSupplier ArrayList::new;四、Lambda表达式的优势和局限 1. 优势 简洁性Lambda表达式大大简化了代码使代码更加简洁和易读。函数式编程Lambda表达式支持函数式编程使得Java能够更好地处理集合操作和并行流处理。代码重用通过使用Lambda表达式和方法引用可以更容易地实现代码重用。 2. 局限 调试困难由于Lambda表达式是匿名的调试和排查问题可能比传统方法更困难。学习曲线对于没有函数式编程背景的开发者理解和使用Lambda表达式可能需要一些时间。性能开销虽然Lambda表达式的性能一般较好但在某些情况下可能会引入额外的开销如创建大量短命对象。 五、实战示例 以下是一个完整的示例展示如何使用Lambda表达式和Stream API处理集合数据。 示例背景 假设我们有一个员工列表我们需要进行以下操作 过滤出年龄大于30的员工。提取员工的名字。对名字进行排序。将名字转换为大写。打印结果。 代码实现 import java.util.Arrays; import java.util.List; import java.util.stream.Collectors;class Employee {private String name;private int age;public Employee(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public int getAge() {return age;}Overridepublic String toString() {return Employee{name name , age age };} }public class LambdaExample {public static void main(String[] args) {ListEmployee employees Arrays.asList(new Employee(John, 25),new Employee(Jane, 35),new Employee(Jack, 40),new Employee(Jill, 22));ListString result employees.stream().filter(e - e.getAge() 30).map(Employee::getName).sorted().map(String::toUpperCase).collect(Collectors.toList());result.forEach(System.out::println);} }输出结果 JACK JANE 通过这个示例我们可以看到Lambda表达式和Stream API如何简化集合数据的处理并使代码更加简洁和易读。 Lambda表达式是Java 8引入的一个重要特性极大地增强了Java的表达能力和简洁性。通过Lambda表达式开发者可以更方便地编写函数式代码简化集合操作提升代码的可读性和可维护性。 结合Stream API和方法引用Lambda表达式使得Java能够更好地应对现代编程需求。尽管Lambda表达式也有其局限性但它在提升开发效率和代码质量方面的优势是显而易见的。掌握和熟练运用Lambda表达式对于现代Java开发者来说是必不可少的技能。 黑马程序员免费预约咨询
http://www.dnsts.com.cn/news/162644.html

相关文章:

  • 关于建设部门子网站的请示2022年今天新闻联播
  • 厦门手机网站设计公司做网站需要什么语言
  • seo在线网站诊断推推蛙concrete5 wordpress
  • 网站模板怎么修改成可视化广告设计图片及解析
  • 网站的ftp在哪里可以查到个人网页设计题目简介
  • 网站建设app开发合同商水建设局网站
  • 玉田县建设局网站建设银行官方网站网页版
  • 各类电子商务网站建设公司邮箱如何申请
  • 长沙品牌网站建设实力强项目投资
  • 网站备案信息可以改吗网站建设及数据分析
  • 网站seo需要用到哪些工具百度推广登录页面
  • 东平县住房和城乡建设局网站电销系统
  • 东莞网站建设知名公司排名广州网络安全公司
  • 重庆网站制作公司电话义乌外贸建网站
  • 网站前端模板下载做网站分几种
  • 个人视频网站怎么做个人主页网站欣赏
  • 怎么在企业站建立网站吗flex布局做自适应网站
  • 怎么筛选一家做网站做的好的公司公司网站在百度搜不到
  • 绵阳市做公司网站2019做网站赚钱么
  • 怎样做违法网站网站怎么做一级域名跳转
  • 找人一起做素材网站wordpress如果让菜单
  • 自己做网络主播的网站三河市建设厅公示网站
  • qq官方网站登录wordpress rss代码
  • 侧边栏jquery网站后台新区网站建设
  • 火车票网站建设去迪拜网站做乞丐
  • 大朗镇仿做网站如何用wordpress快速建站
  • vue is做的购物网站海沧建设网站多少钱
  • 响应式网站制作流程图营销型网站建设就找山东艾乎建站
  • 做网站要怎么找单网站建设编程
  • html5网站开发工具有哪些电商网站建站开发语言