在Java中,`stream.map()`是一个非常常用的方法,它用于将一个流中的每个元素映射(转换)为新的元素。这个方法接收一个函数作为参数,该函数定义了如何将原始元素转换为新的元素。
下面是一个基本的用法案例:
List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> newList = list.stream()
.map(item -> item.toUpperCase())
.collect(Collectors.toList());
System.out.println(newList);
// 输出: [APPLE, BANANA, CHERRY]
在这个例子中,`map()`方法接收一个Lambda表达式`item -> item.toUpperCase()`,这个表达式将每个元素转换为大写。
你也可以使用自定义的函数对象作为`map()`方法的参数。
例如:
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Function<Integer, String> mapper = num -> num + " units";
List<String> newList = list.stream()
.map(mapper)
.collect(Collectors.toList());
System.out.println(newList);
// 输出: [5 units, 6 units, 7 units, 8 units, 9 units]
在这个例子中,我们使用了一个自定义的函数对象`Function`,它接收一个整数并返回一个字符串。这个函数对象被传递给`map()`方法,从而对流中的每个元素进行转换。
注意!!!
`map()`方法不会改变原始流中的元素,而是返回一个新的流,其中包含应用了映射函数后的元素。如果你需要修改原始流,可以使用`collect()`方法或其他转换方法(如`filter()`或`forEach()`)。