MapStream

package com.shrimpking.t3;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Stream;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Shrimpking
 * @create 2024/9/11 15:15
 */
public class MapStream
{
    public static void main(String[] args)
    {
        List<Integer> list = Arrays.asList(1,2,3,4,5);
        Stream<Integer> stream1 = list.stream();

        //将流中的元素映射为自身的平方
        stream1.mapToInt(x -> x * x).forEach(y -> System.out.printf("%d ",y));
        System.out.println();

        //将流中的元素映射为带有数字序号的元素
        Stream<String> stream2 = Stream.of("one","two","three","four");
        AtomicInteger index = new AtomicInteger(1);
        stream2.map(x -> index.getAndIncrement() + "." + x)
                .forEach(y -> System.out.printf("%s ",y));

    }
}

map 和 stream 是两个不同的概念。我可以分别解释它们给你听。 1. Map: 在编程中,map 是一种用于转换数据的操作。它接受一个函数和一个可迭代对象作为输入,并将该函数应用于每个元素,最后返回一个包含转换结果的新的可迭代对象。在很多编程语言中,map 函数通常用于对列表、数组或其他集合进行批量操作。 例如,假设有一个包含整数的列表,我们想将列表中的每个元素乘以2。我们可以使用 map 函数来实现这个操作,代码示例如下(使用 Python): ``` numbers = [1, 2, 3, 4, 5] doubled_numbers = map(lambda x: x * 2, numbers) print(list(doubled_numbers)) # 输出 [2, 4, 6, 8, 10] ``` 在上面的例子中,我们使用了 lambda 表达式来定义一个匿名函数,将每个元素乘以2。然后,我们将这个函数应用于 numbers 列表中的每个元素,得到一个新的可迭代对象 doubled_numbers,最后通过 list() 函数将其转换为列表。 2. Stream: Stream 是一种用于处理数据流的概念,它可以在各种编程语言和框架中使用。Stream 可以看作是一系列有序的数据元素,在处理过程中可以进行各种操作,如过滤、转换、排序等。 Stream 通常具有以下特点: - 惰性计算:Stream 的操作不会立即执行,而是在需要的时候才进行计算,这种特性可以提高效率。 - 链式调用:Stream 的操作可以链式调用,将多个操作连接在一起形成一个流水线,便于编写和阅读代码。 - 并行处理:Stream 可以支持并行处理,将数据流分成多个子流并行处理,提高处理速度。 使用 Stream 可以简化代码的编写,并且提供了一种更直观、易于理解的方式来处理数据。不同编程语言和框架对于 Stream 的实现可能有所不同,但基本的概念是类似的。 希望能帮到你!如果你有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米大王

有你的支持,我会更有动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值