21xrx.com
2024-12-22 17:07:45 Sunday
登录
文章检索 我的文章 写文章
Java Stream.map使用指南
2023-07-29 07:15:12 深夜i     --     --
Java Stream map 使用指南

Java Stream是Java 8引入的一个强大的函数式编程工具,它可以帮助我们在集合上执行各种操作。其中,Stream.map是一个非常有用的函数,它可以将一个流中的每个元素都映射到一个新的元素上。

Stream.map的语法如下:


<R> Stream<R> map(Function<? super T, ? extends R> mapper)

其中,T代表流中的元素类型,R代表映射后的元素类型。mapper参数是一个函数式接口,它定义了如何将每个元素映射到一个新的元素上。

使用Stream.map,我们可以实现很多功能。下面是一些常见的用法:

1. 对集合中的元素进行转换:


List<String> names = Arrays.asList("Alice", "Bob", "Charles");

List<Integer> nameLengths = names.stream()

                 .map(s -> s.length())

                 .collect(Collectors.toList());

在这个例子中,我们使用map将每个字符串转换为其长度。最终,nameLengths集合将包含每个字符串的长度。

2. 将集合中的对象提取出某个属性:


List<Person> people = Arrays.asList(new Person("Alice", 25), new Person("Bob", 30), new Person("Charles", 40));

List<Integer> ages = people.stream()

              .map(p -> p.getAge())

              .collect(Collectors.toList());

在这个例子中,我们使用map将每个Person对象的年龄提取出来。最终,ages集合将包含每个Person对象的年龄。

3. 对集合中的元素进行计算或处理:


List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> squares = numbers.stream()

                .map(n -> n * n)

                .collect(Collectors.toList());

在这个例子中,我们使用map将每个数字平方。最终,squares集合将包含每个数字的平方值。

4. 对集合中的元素进行过滤后再映射:


List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> evenSquares = numbers.stream()

                  .filter(n -> n % 2 == 0)

                  .map(n -> n * n)

                  .collect(Collectors.toList());

在这个例子中,我们首先使用filter过滤出偶数,然后再使用map将每个偶数平方。最终,evenSquares集合将包含每个偶数的平方值。

总结而言,Java Stream.map是一个非常有用的函数,它可以将一个流中的每个元素映射到一个新的元素上。我们可以使用map实现转换、提取属性、计算或处理等功能。希望本文提供的使用指南能够帮助您更好地理解和使用Java Stream.map。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复