Java map() 详解
时间: 2023-05-28 17:04:09 浏览: 73
map() 方法是 Java Stream API 中的一个中间操作方法,它接收一个 Function 接口作为参数,并将其应用于流中的每个元素,从而将每个元素转换为另一个元素构成的流。map() 方法的返回值是一个 Stream 对象,因此可以进行链式操作。
语法:
Stream<R> map(Function<? super T, ? extends R> mapper)
其中,T 是输入流中元素的类型,R 是输出流中元素的类型。mapper 是一个接受 T 类型参数并返回 R 类型结果的函数。
示例:
假设有一个字符串列表,我们想将其中的每个字符串转换为它的长度:
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<Integer> lengthStream = list.stream().map(String::length);
这里使用了方法引用 String::length,它等价于 lambda 表达式 s -> s.length()。
map() 方法还可以用于类型转换,例如将一个字符串列表转换为整数列表:
List<String> stringList = Arrays.asList("1", "2", "3");
List<Integer> intList = stringList.stream().map(Integer::valueOf).collect(Collectors.toList());
在这里,我们使用了 Integer 的 valueOf() 方法将字符串转换为整数,并使用 collect() 方法将结果收集到一个新的列表中。