使用Java流将Java ArrayList转换为向量
我知道这是一个更简单的问题 但是,是否可以使用JavaStreamsAPI将给定的对象列表使用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类型创建一
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())之外,为转换创建静态方法会更好
转换为另一种方法。无论如何,重构成一个方法是不值得的。