Java 8 将自定义元素添加到集合中的方法?

标签 java for-loop lambda java-8

是否有 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返回原始 intIntStream。每个都映射到对象 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/

相关文章:

java - 使用 S/MIME 对文件进行签名和加密

java - 我如何知道Java中Word文档的确切扩展名

python - 计算一组 "binary strings"中的个数 (Python)

android - 如何在 Kotlin 的 forEach 上引用外部 this

java - 如何从映射器登录? (hadoop 与 commoncrawl)

java - 为什么方法使用类名作为修饰符(?)和参数?

c - 在 SDL2 C 中使用 for 循环显示矩形

java - 用于循环为扫描仪输入添加变量

vb.net - Visual Basic 9.0不支持这种lambda表达式

LinQ 查询中 lambda 表达式中的 C# 多个变量