使用 Java Streams 将 Java ArrayList 转换为 Vector

Pra*_*nde 1 java java-stream

我知道这是一个更简单的问题。

但是是否可以转换给定的对象列表List<Person>并将其转换为Vector<PersonName>使用Java Streams API

public class Person {        
     String name;
     String lastName;
     int age;
     float salary;
}

public class PersonName {
     String name;
     String lastName;
}
Run Code Online (Sandbox Code Playgroud)

Car*_*tem 5

你真的应该做一个构造函数和/或 make PersonNameextend 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));
Run Code Online (Sandbox Code Playgroud)