首页
复制
搜索
前进
后退
重载网页
和我当邻居
给我留言吧
首页
壁纸
影院
统计
关于
友链
留言
Search
1
面向对象核心
28 阅读
2
Java枚举类
26 阅读
3
Lambda表达式与Stream
23 阅读
4
Java常用API与类
20 阅读
5
集合框架主要集合类及其用法
20 阅读
随笔
JAVA
Mysql
JavaWeb
Tools
登录
Search
标签搜索
集合框架
fnm
枚举
数组
基础语法
面向对象
Comparator
Comparable
Cloneable
内部类
普通成员内部类
普通局部内部类
静态成员内部类
静态成员代码块
Throwable
异常类
密封类
代码块
普通成员代码块
Mathlei
阿简
累计撰写
34
篇文章
累计收到
0
条评论
首页
栏目
随笔
JAVA
Mysql
JavaWeb
Tools
页面
壁纸
影院
统计
关于
友链
留言
搜索到
1
篇与
的结果
2024-08-09
Lambda表达式与Stream
什么是 Lambda 表达式?Lambda 表达式是 Java 8 引入的一种新特性,它是一种简洁的表示能够传递的代码块。Lambda 表达式可以表示一个函数接口的实现。函数接口是只包含一个抽象方法的接口,例如 Runnable、Comparator 或 Java 8 引入的 java.util.function 包中的接口。Lambda 表达式的语法(parameters) -> expression 或 (parameters) -> { statements; }示例// 不带参数的Lambda表达式 Runnable r = () -> System.out.println("Hello Lambda!"); // 带一个参数的Lambda表达式 Consumer<String> consumer = (s) -> System.out.println(s); // 带有两个参数和返回值的Lambda表达式 Comparator<Integer> comparator = (a, b) -> Integer.compare(a, b);使用 Lambda 表达式的场景简化匿名内部类的使用: Lambda 表达式提供了一种简化写法,替代冗长的匿名内部类。配合函数式接口: 可以与 java.util.function 包中的函数式接口配合使用,例如 Predicate、Function、Consumer、Supplier、UnaryOperator 等。Java Stream API什么是 Stream?Stream 是 Java 8 中引入的一种新特性,它是一种用来处理集合数据的高级抽象。Stream 可以进行非常复杂的数据操作,例如过滤、排序、映射、归约等,能够更简洁、方便地进行集合操作。Stream 的使用步骤创建 Stream: 可以通过集合、数组、文件等多种方式创建一个 Stream。中间操作: 对 Stream 进行一系列转换(如 filter、map、sorted 等),这些操作是懒执行的。终端操作: 对 Stream 进行最终操作(如 forEach、collect、reduce 等),触发所有中间操作的执行。示例代码List<String> list = Arrays.asList("java", "c", "python", "c++", "VB", "C#"); // 使用Stream进行过滤和遍历 list.stream() .filter(s -> s.length() > 2) .forEach(System.out::println);常用的 Stream 操作filter(Predicate): 对元素进行过滤。map(Function): 将每个元素转换为另一种类型。sorted(Comparator): 对元素进行排序。collect(Collector): 将 Stream 转换为集合、数组等。reduce(BinaryOperator): 归约操作,将所有元素根据给定的规则合并为一个结果。结合使用 Lambda 表达式与 StreamLambda 表达式通常与 Stream API 一起使用,可以让代码更简洁、易读。例如:List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David"); // 使用Stream API和Lambda表达式筛选和转换数据 List<String> result = names.stream() .filter(name -> name.startsWith("A")) .map(String::toUpperCase) .collect(Collectors.toList()); System.out.println(result); // 输出: [ALICE]常见的函数式接口Predicate<T>: 接收一个参数,返回一个布尔值结果。Predicate<String> isLongerThan5 = s -> s.length() > 5;Consumer<T>: 接收一个参数,无返回值。Consumer<String> print = s -> System.out.println(s);Function<T, R>: 接收一个参数,返回一个结果。Function<String, Integer> length = s -> s.length();Supplier<T>: 无参数,返回一个结果。Supplier<String> supplier = () -> "Hello";UnaryOperator<T>: 接收一个参数,返回一个相同类型的结果。UnaryOperator<String> toUpperCase = s -> s.toUpperCase();
2024年08月09日
23 阅读
0 评论
0 点赞