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

建设课程网站的目的上海优化价格

建设课程网站的目的,上海优化价格,东营住建局官网,临沂网站建设联系方式目录 1、函数式编程核心概念 1.1、什么是函数式编程 1.2、Java8的函数式支持 2、Lambda表达式 2.1、基本语法 2.2、使用示例 3、函数式接口 3.1、核心函数式接口 4、方法引用 4.1、示例代码 5、Stream API 5.1、流操作三个步骤 5.2、常用操作 6、Optional类 6.1、…

目录

1、函数式编程核心概念

1.1、什么是函数式编程

 1.2、Java8的函数式支持

2、Lambda表达式

2.1、基本语法

2.2、使用示例

3、函数式接口

3.1、核心函数式接口

4、方法引用

4.1、示例代码

 5、Stream API

5.1、流操作三个步骤

5.2、常用操作

6、Optional类

6.1、主要方法

6.2、使用示例

7、函数式编程实践


 

1、函数式编程核心概念

1.1、什么是函数式编程

  • 函数可以像变量一样传递和使用
  • 更加关注“做什么”而非“如何做”
  • 函数不修改外部状态
  • 避免可变状态

 1.2、Java8的函数式支持

  • Lambda表达式
  • 方法引用
  • Stream API
  • Optional类
  • 默认方法
  • 函数式接口

2、Lambda表达式

2.1、基本语法

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

2.2、使用示例

// 传统匿名类
Runnable r1 = new Runnable() {public void run() {System.out.println("Hello");}
};// Lambda表达式,无参数,单号代码,省去{}和return
Runnable r2 = () -> System.out.println("Hello");// 带参数的Lambda,多个参数
Comparator<String> c = (s1, s2) -> s1.compareToIgnoreCase(s2);// 多行代码,单个参数可以省去()
Function<String, Integer> f = s -> {System.out.println("Processing: " + s);return s.length();
};

3、函数式接口

3.1、核心函数式接口

接口方法用途
Function<T,R>R apply(T t)传入T返回R
Consumer<T>void accept(T t)消费T无返回
Supplier<T>T get()提供T型对象
Predicate<T>Boolean test(T t)断言判断
UnaryOperator<T>T apply(T t)一元运算
BinaryOperator<T>T apply(T t1, T t2)二元运算

3.2、自定义函数式接口

@FunctionalInterface
interface StringProcessor {String process(String input);// 只能有一个抽象方法default void info() {System.out.println("Functional interface");}
}

4、方法引用

  • 静态方法引用:ClassName::staticMethod
  • 实例方法引用:instance::method
  • 任意对象方法引用:ClassName::method
  • 构造方法引用:ClassName::new

4.1、示例代码

// 静态方法
Function<String, Integer> p = Integer::parseInt;// 实例方法
Consumer<String> printer = System.out::println;// 任意对象方法
Function<String, String> upper = String::toUpperCase;// 构造方法
Supplier<List<String>> listSupplier = ArrayList::new;

 5、Stream API

5.1、流操作三个步骤

1、创建流:集合、数组、I、O等

2、中间操作:过滤、映射、排序等

3、终端操作:收集、计算、遍历

5.2、常用操作

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");// 过滤和映射
List<String> result = names.stream().filter(s -> s.length() > 3).map(String::toUpperCase).collect(Collectors.toList());// 分组
Map<Integer, List<String>> groupByLength = names.stream().collect(Collectors.groupingBy(String::length));// 并行处理
long count = names.parallelStream().filter(s -> s.startsWith("A")).count();

6、Optional类

6.1、主要方法

  • of()/ofNullable()

  • isPresent()/ifPresent()

  • orElse()/orElseGet()/orElseThrow()

  • map()/flatMap()

  • filter()

6.2、使用示例

Optional<String> opt = Optional.ofNullable(getName());// 传统null检查
if (opt.isPresent()) {System.out.println(opt.get());
}// 函数式风格
opt.ifPresent(System.out::println);// 链式操作
String result = opt.map(String::toUpperCase).orElse("DEFAULT");

7、函数式编程实践

// 传统方式
List<String> filtered = new ArrayList<>();
for (String name : names) {if (name.length() > 3) {filtered.add(name.toUpperCase());}
}// 函数式方式
List<String> filtered = names.stream().filter(n -> n.length() > 3).map(String::toUpperCase).collect(Collectors.toList());

http://www.dtcms.com/wzjs/826904.html

相关文章:

  • 北京网站建设学校怎么去做网络推广
  • 破解进入网站后台开发工具怎么用
  • wordpress微信网站模板春雨app直播免费看
  • 玛多县网站建设公司网站开发的英文
  • 网络运营者包括越秀seo搜索引擎优化
  • 佛山网站推广公司级做宣传图的网站
  • 利用google地图标注做网站wordpress前台登陆界面
  • 网站建设可行性分析包括什么重庆搭建工厂
  • 刚做的网站适合做外链吗网站后台管理系统域名
  • wordpress子目录网站东莞市永铭装饰有限公司
  • 长春网站建设方案推广10个网站
  • 免费视图网站建设在郑州网站建设
  • 江苏省建设厅网站证件查询网页设计与网站建设主要内容
  • 做网站网站代理犯法吗做一个简单的网站要多少钱
  • ip做网站需要过白名单吗googlechrome浏览器
  • 自己如何建设校园网站建设厅网站打不开
  • 能自己做网站接业务吗wordpress修改注册页
  • 学院网站建设自查报告长沙城市建设档案馆网站
  • 铁岭 网站建设东莞国网站建设
  • 实验教学中心网站建设东莞企业网站公司
  • 网站设计论文大全wordpress虚拟资源助推
  • 怎样创建行业门户网站用py做网站
  • 网站建设未来趋势没网站做cpa广告联盟
  • 扬州网站建设企业网站开发外贸客户
  • 如何建立公司网站?北京建工博海建设有限公司网站
  • 制作简单的网站电子商务公司简介
  • 官网和网站的区别桂林八景
  • 杭州网站建设案例隆尧网站制作
  • 哪里有做投票的网站wordpress迁移hexo
  • 推荐昆明做网站建设优化手机软件