use*_*883 3 java lambda for-loop java-8
是否有java 8方式执行以下操作?
for(int i;i<=100;i++){
Person person=new Person();
person.setId(i);
person.setName("name"+i);
list.add(person)
}
Run Code Online (Sandbox Code Playgroud)
您可以通过将每个int
从0到100 映射到a中来获取人员列表Person
.
List<Person> persons = IntStream.rangeClosed(0, 100).mapToObj(i -> {
Person person = new Person();
person.setId(i);
person.setName("name" + i);
return person;
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
然后,您可以将该persons
列表附加到现有列表中.
IntStream.rangeClosed
返回一个IntStream
原语int
.每一个被映射到对象Person
与mapToObj
并收集到与列表Collectors.toList()
.
如果你有一个Person
获取id和名字的构造函数,它会更清晰.使用这样的构造函数,您可以编写:
List<Person> persons = IntStream.rangeClosed(0, 100)
.mapToObj(i -> new Person(i, "name" + i))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)