java8用一行代码将一个List集合中的部分内容复制到另一个List集合

举例

一张数据表user包括id,name,age,gender。

用List装该数据表的全部数据,在这里我们假如直接获得这部分数据:

List users = getUsers();

现在需要全部的name数据,我们可以:

List 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());

你可能感兴趣的:(实习,list,java8,stream)