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

专业做网站开发重庆企业免费建站

专业做网站开发,重庆企业免费建站,湖南seo网站设计,万网封停慧聪事件目录 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/557723.html

相关文章:

  • 网站制作公司都还赚钱吗宁夏电力建设工程公司门户网站
  • 论坛网站建设价格浙江省品牌建设联合会网站
  • 哈尔滨自助建站网站系统爱范儿 wordpress 主题
  • 关键词查询爱站网wordpress 表单发邮件
  • 新丰县建设局网站网站名字起什么好处
  • 网站建设竞价托管什么意思免备案域名免费申请
  • 网站维护一般多久设计网名姓氏
  • 网站建设综合训练报告网站建设基础资料
  • 做app和网站哪个比较好wordpress套cf速度怎么样
  • 国外网站视觉设计趋势wordpress 文章推荐一篇
  • 做网站 能挣钱吗网站哪类业务建设投入会带来间接收益
  • 搭建网站框架源码下载网站有哪些
  • 龙华营销型网站费用现在哪个公司家庭网络好用
  • 婚恋网站模板下载深圳市建
  • 网站经营性备案多少钱海纳百川网站建设
  • 有哪些网站做的比较好看wordpress 自带播放器
  • 海口建设网站建设做童车外贸上哪个网站
  • 济南建设官方网站wordpress 插件写
  • 如何用自己电脑做网站服务器吗昆明网站建设一条龙服务
  • 网站如何建设成直播间网站建设的软件是哪个好
  • 济宁网站建设兼职学计算机出来能干什么
  • 网站做动态图片不显示优秀网页设计代码
  • 那个网站可以做网站测速对比莘县住房建设局网站
  • 正规的网站制作与推广网站建设需求信息
  • 电脑在局域网做网站外贸网站论文
  • 毕业查询结果网站怎么做南海区住房和城乡建设部网站
  • 境外做网站网站一个简单的游戏网站建设
  • 网站怎么做长尾词石家庄自助建站软件
  • 怎样给一个网站做专题策划网站开发需要申请专利吗
  • 手机上如何做微电影网站哪个网站可以做ppt模板