【问题标题】:Creating object in loop and add to list在循环中创建对象并添加到列表
【发布时间】:2018-10-05 10:47:57
【问题描述】:

您好,我有一些问题要解决。我需要创建一个循环,在其中创建 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
    }
}

【问题讨论】:

  • 请添加代码以显示您到目前为止所做的尝试。
  • 这是我的代码
  • 1) 创建一个空的List<Person> 2) 编写一个循环执行x 的次数并在该循环的主体内 3) 创建一个Person 对象和4) 添加@ 987654325@ 进入列表。您在哪个部分遇到了问题?
  • 您的问题是什么?什么不工作?您的问题似乎过于笼统,因为它似乎只是在要求实施。

标签: java list loops


【解决方案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());
}

【讨论】:

    【解决方案2】:

    您可能想使用 java 8 方法:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 2021-12-01
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多