在Java的Stream API中,map方法是一个非常常用的中间操作,它用于对流中的每个元素执行一个给定的函数,并将结果映射成一个新的流。map方法不会修改原始流中的元素,而是创建一个新的流,其中包含了原始流中每个元素经过转换后的结果。
map方法接受一个函数作为参数,这个函数被应用于流中的每一个元素。这个函数可以是一个Lambda表达式,也可以是一个实现了Function接口的对象。Function接口只有一个抽象方法apply,它接受一个参数并返回一个结果。
下面是一个使用map方法的简单示例:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamMapExample {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
// 使用map方法将字符串转换为整数
List<Integer> integerList = stringList.stream()
.map(Integer::parseInt)
.collect(Collectors.toList());
System.out.println(integerList); // 输出: [1, 2, 3, 4, 5]
}
}
在上面的例子中,我们有一个包含字符串的列表stringList。我们想要将这个列表转换为一个包含整数的列表。为此,我们使用map方法,并将Integer::parseInt方法引用传递给它。这个方法引用是一个函数,它将字符串参数转换为整数。map方法应用这个函数到流中的每个元素,并收集结果到一个新的列表中。