是否有 java 8 方法来执行以下操作?
for(int i;i<=100;i++){
Person person=new Person();
person.setId(i);
person.setName("name"+i);
list.add(person)
}
最佳答案
您可以通过将每个从 0 到 100 的 int
映射到一个 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());
然后,您可以将该 persons
列表附加到现有列表中。
IntStream.rangeClosed
返回原始 int
的 IntStream
。每个都映射到对象 Person
,带有 mapToObj
并用 Collectors.toList()
收集到列表中.
如果你有一个 Person
的构造函数,它会带上 id 和 name。使用这样的构造函数,您可以编写:
List<Person> persons = IntStream.rangeClosed(0, 100)
.mapToObj(i -> new Person(i, "name" + i))
.collect(Collectors.toList());
关于Java 8 将自定义元素添加到集合中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514918/