使用Stream / Map Java 8从列表创建对象

时间:2018-06-27 18:42:43

标签: java java-stream

我有一个对象列表。我想使用一种方法从此列表创建单个对象,而不总是调用:personList.get(0),personList.get(1)等。对象名称应为list元素中的Person名称。

List<Person> personList = ...;

我想遍历personList并按名称为列表中的每个对象创建新对象。

人员类包含带有吸气剂的name属性。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

只需流式传输列表并按如下所示调用map操作:

personList.stream()
          .map(x -> new T(x.getName()))
          .collect(Collectors.toList());

T是您要创建的新型元素,例如StudentPersonEmployee等。

答案 1 :(得分:-1)

只是一个简单的forEach循环:

personList.forEach(p -> {
  T newObject = new T(p.getName());
  // Do what you need to do with each new object
});

如果您想做一些更复杂的事情,那么Aonminè的答案可能就是您真正需要的。