我知道这是一个更简单的问题。
但是是否可以转换给定的对象列表List<Person>
并使用 Java Streams API 将其转换为Vector<PersonName>
public class Person {
String name;
String lastName;
int age;
float salary;
}
public class PersonName {
String name;
String lastName;
}
答案 0 :(得分:4)
你应该真正构建一个构造函数和/或使PersonName
扩展Person
。但是这里有一个不使用的解决方案:
ArrayList<Person> list = ...;
Vector<PersonName> vect = list.stream().map(t -> {
PersonName name = new PersonName();
name.lastName = t.lastName;
name.name = t.name;
return name;
}).collect(Collectors.toCollection(Vector::new));
答案 1 :(得分:2)
为PersonName
类型创建两个参数构造函数,然后您可以执行:
Vector<PersonName> resultSet =
peopleList.stream()
.map(p -> new PersonName(p.getName(), p.getLastName()))
.collect(Collectors.toCollection(Vector::new));