Lambda_09 函数表达式 Stream map
提取stream中的数据返回。
Stream map 特点
- 通过匿名内部类实现业务或Lambda表达式
- 数据映射转换
- 数据并行计算
代码示例:
public class Lambda10 {
public static void main(String[] args) {
List<Student> list = Arrays.asList(new Student("张三", 18),
new Student("李四", 19),
new Student("王五", 21),
new Student("赵六", 22));
//parallelStream 并行Stream
//转换Stream<List<Student>> ---转换-> Stream<String>
/**
* 通过匿名内部类实现map方法
*/
System.out.println("通过匿名内部类实现map方法");
list.parallelStream().map(new Function<Student, Object>() {
@Override
public Object apply(Student student) {
return student.getName();
}
}).forEach(stu-> System.out.println(stu));
/**
* 通过Lambda表达式实现map方法
*/
System.out.println("====通过Lambda表达式实现map方法");
list.parallelStream().map(t->t.getName()).forEach(stu-> System.out.println(stu));
}
}
class Student {
private String name;
private Integer age;
public Student(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}