一 map
1.如果有一个函数可以将一种类型的值转换成另外一种类型,map操作就可以
使用该函数,将一个流中的值转换成一个新的流。
2.以前编程时或多或少使用过类似map的操作。比如编写一段Java代码,将一组字符串转换成对应的大写形式,在一个循环中,对每个字符串调用toUppercase方法,然后将得到的结果加入一个新的列表。代码如下所示。
/**
* @Author yqq
* @Date 2021/4/10 23:13
* @Version 1.0
*/
public class MapDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
List<String> sList = new ArrayList<>();
list.add("a");
list.add("b");
list.add("C");
//使用for循环将字符串转换为大写
for (String s:list){
String t=s.toUpperCase();
sList.add(t);
}
System.out.println(sList);
//使用map操作将字符串转换为大写形式
List<String> mapDemo=list
.stream()
.map(e -> e.toUpperCase())
.collect(Collectors.toList());
System.out.println(mapDemo);
/**
* 传给map的Lambda表达式只接受一个String类型的参数,返回一个新的String。参数
* 和返回值不必属于同一种类型,但是Lambda表达式必须是Function接口的一个实例,Function>接口是只包含一个参数的普通函数接口。
*/
}
}
//输出结果
//[A, B, C]
//[A, B, C]
注意:collect(Collectors.toList())方法由Stream里的值生成一个列表,是一个及早求值操作。