举例:
一张数据表user包括id,name,age,gender。
用List<User>装该数据表的全部数据,在这里我们假如直接获得这部分数据:
List<User> users = getUsers();
现在需要全部的name数据,我们可以:
List<String> names = users.stream().map(User::getName()).collect(Collectors.toList());
解释:
stream:stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。对stream进行修改不会修改任何一个背后的数据源。
map:接收一个函数作为参数,该函数被应用到每个元素上,并将其映射成一个新的元素。
collect:属于terminal operation,必须加在后面,否则会报错。
Collectors.toList()用来结束Stream流。
总结:
List<需要获得集合的类型> list = 已获得的集合的对象.stream().map(已获得的集合对应的类型::需要获得集合对应的内容的Getter方法).collect(Collectors.toList());