用法:Stream.of(T… values).flatMap(Function<? super T, ? extends Stream<? extends R>> mapper)
- 基本数据类型
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author by miao
* @date 2020/10/22 19:27
*/
public class FlatMapDemo {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list2.add(5);
list2.add(6);
list2.add(7);
List<Integer> result = Stream.of(list1, list2).flatMap(Collection::stream).collect(Collectors.toList());
System.out.println(result);
}
}
- 引用类型
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author by miao
* @date 2020/10/22 19:27
*/
public class FlatMapDemo {
public static void main(String[] args) {
List<Student> students1 = new ArrayList<>();
List<Student> students2 = new ArrayList<>();
students1.add(new Student("小红", 15));
students1.add(new Student("小绿", 19));
students2.add(new Student("小紫", 26));
List<Student> result = Stream.of(students1, students2).flatMap(Collection::stream).collect(Collectors.toList());
System.out.println(result);
}
}
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 +
'}';
}
}
结果
[Student{name='小红', age=15}, Student{name='小绿', age=19}, Student{name='小紫', age=26}]