循环创建对象并添加到列表

时间:2018-10-05 10:47:57

标签: java list loops

你好,我有一些问题要解决。我需要创建一个循环,在其中创建x个人员对象(x是一个函数参数),并将其添加到列表中。

class Person
{
    public int Age; 
    public String Name; 

    public Person(int age, String name) {
        this.Age = age;
        this.Name= name;
    }
}

class Solution {
    public int solution(int X) {
        // write your code in Java
    }
}

2 个答案:

答案 0 :(得分:1)

在Java 7中

  class Solution {
      public List<Person> solution(int X) {
        List<Person> list= new ArrayList();
        for(int i=0;i<X;i++){
          list.add(new Person(age,name)); // pass age and name 
        }
        return list;
      }
    }

在Java 8中

public List<Person> solution(int X) {
    return IntStream.iterate(0, i -> i + 1)
            .limit(X)
            .mapToObj(i->new Person (age,name))
            .collect(Collectors.toList());
}

或者您可以使用并行流

public List<Person> solution(int X) {
     return IntStream.iterate(0, i -> i + 1)
            .parallel()
            .limit(X)
            .mapToObj(i->new Person (1,i+" name"))
            .collect(Collectors.toList());
}

在Java 9中

public List<Person> solution(int X) {
     return Stream.iterate(0, i -> i < X, i -> i + 1)
            .map(i->new Person(age,name))
            .collect(Collectors.toList());
}

答案 1 :(得分:0)

您可能要使用Java 8方法:

return IntStream.range(0, x).mapToObj(new Person(age, name)).collect(Collectors.toList());

请注意,您将创建x个具有相同属性的Person对象。