使用Java流将Java ArrayList转换为向量

使用Java流将Java ArrayList转换为向量,java,java-stream,Java,Java Stream,我知道这是一个更简单的问题 但是,是否可以使用JavaStreamsAPI将给定的对象列表list转换为Vector public class Person { String name; String lastName; int age; float salary; } public class PersonName { String name; String lastName; } 为PersonName类型创建一

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

但是,是否可以使用JavaStreamsAPI将给定的对象列表
list
转换为
Vector

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

public class PersonName {
     String name;
     String lastName;
}

PersonName
类型创建一个双参数构造函数,然后可以执行以下操作:

Vector<PersonName> resultSet =
               peopleList.stream()
                         .map(p -> new PersonName(p.getName(), p.getLastName()))
                         .collect(Collectors.toCollection(Vector::new));
向量结果集=
peopleList.stream()
.map(p->newPersonName(p.getName(),p.getLastName()))
.collect(collector.toCollection(Vector::new));

PersonName
类型创建一个双参数构造函数,然后可以执行以下操作:

Vector<PersonName> resultSet =
               peopleList.stream()
                         .map(p -> new PersonName(p.getName(), p.getLastName()))
                         .collect(Collectors.toCollection(Vector::new));
向量结果集=
peopleList.stream()
.map(p->newPersonName(p.getName(),p.getLastName()))
.collect(collector.toCollection(Vector::new));

您真的应该创建一个构造函数和/或创建
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));
ArrayList=。。。;
Vector vect=list.stream().map(t->{
PersonName name=新的PersonName();
name.lastName=t.lastName;
name.name=t.name;
返回名称;
}).collect(collector.toCollection(Vector::new));

您真的应该创建一个构造函数和/或创建
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));
ArrayList=。。。;
Vector vect=list.stream().map(t->{
PersonName name=新的PersonName();
name.lastName=t.lastName;
name.name=t.name;
返回名称;
}).collect(collector.toCollection(Vector::new));

你不需要流:<代码>新矢量(list)< /Cord>为什么必须用流来做?但是它怎么会认为在向量中我们只有名字和姓氏,而不是年龄和薪水?嗯,你应该解释的问题是:列表由两个代码组成:<代码>人>代码> s和<代码>人名< /代码> S.MyDad。我用同样的方式对问题进行了描述,但没有注意到在拼写错误中。你不需要流:<代码>新向量(list)< /Cord>为什么必须用流来做?但是它怎么会认为在向量中我们只有名字和姓氏,而不是年龄和薪水?您应该在问题中解释,该列表由
Person
s和
PersonName
s组成。我确实以同样的方式提出了这个问题,但在拼写错误中没有提到。更好的办法是为这个问题创建一个静态方法
stream().map(Utility::transform).
另外,因为这里只有映射,没有任何过滤,所以最好指定
向量的初始容量
@Eugene我不明白为什么除了隐藏
新人名(p.getName(),p.getLastName())之外,为转换创建静态方法会更好
转换为另一种方法。这当然不值得重构成一个方法。更好的办法是为它创建一个静态方法
stream().map(Utility::transform).
另外,因为这里只有映射,没有任何过滤,所以最好指定
向量的初始容量
@Eugene我不明白为什么除了隐藏
新人名(p.getName(),p.getLastName())之外,为转换创建静态方法会更好
转换为另一种方法。无论如何,重构成一个方法是不值得的。