我想将两个String类型的List转换为Person List
第一个列表包含人员的名字,第二个列表包含姓氏 我要在“人物对象列表”中映射的对象
class Person {
private String fistName;
private String lastName;
public Person(String fistName, String lastName) {
this.setFirstName(fistName);
this.setLastName(lastName);
}
}
public class TestClass {
public static void main(String[] args) {
List<String> firstname=new ArrayList<String>();
firstname.add("Laxmi");
firstname.add("kaya");
firstname.add("sapna");
List<String> lastname=new ArrayList<String>();
lastname.add("P");
lastname.add("K");
lastname.add("S");
List<Person> emp = Stream.of(firstname,lastname).forEach(e-> new Person(e.get(0),e.get(1)));
}
}
答案 0 :(得分:2)
您可以这样做:
List<Person> res = IntStream.range(0, firstName.size())
.mapToObj(i -> new Person(firstName.get(i), lastName.get(i)))
.collect(Collectors.toList());
但这是假设两个List
的大小相同
此解决方案使用IntStream::range
生成两个List
的索引流