Java 使用带参数的构造函数填充对象列表

Java 使用带参数的构造函数填充对象列表,java,java-stream,Java,Java Stream,我需要填写班级学生名单: 班级学生{ 字符串名; 字符串lastName; 公立学生(字符串名、字符串名){ this.firstName=firstName; this.lastName=lastName; } 以下是生成器方法签名: 公共列表生成器领域学生(整数数量){ 列出学生名单; //列表由所需的学生数量填充 留学生; 我所尝试的: List student=Stream .of(新学生(getRandomStringFromFile(“firstnames.txt”)、getRa

我需要填写班级学生名单:

班级学生{
字符串名;
字符串lastName;
公立学生(字符串名、字符串名){
this.firstName=firstName;
this.lastName=lastName;
}
以下是生成器方法签名:

公共列表生成器领域学生(整数数量){
列出学生名单;
//列表由所需的学生数量填充
留学生;
我所尝试的:

List student=Stream
.of(新学生(getRandomStringFromFile(“firstnames.txt”)、getRandomStringFromFile(“lastnames.txt”))
.限额(数量)
.collect(Collectors.toList());
只创建一个学生。 2) 尝试使用Stream.generate,但它仅适用于供应商,我无法使用构造函数的参数。

Stream.of(new Student(…)
仅生成单个元素的

相反,您需要的是有一个
供应商
,它可以生成一个随机的
学生
,然后使用
流。生成(供应商)
来生成一个无休止的随机学生流(您稍后会限制该学生):

Student=()->新学员(
getRandomStringFromFile(“firstnames.txt”),
getRandomStringFromFile(“lastnames.txt”);
List student=Stream.generate(随机学生)
.限额(数量)
.collect(Collectors.toList());
或内联:

List<Student> students = Stream
        .generate(() -> new Student(
                getRandomStringFromFile("firstnames.txt"),
                getRandomStringFromFile("lastnames.txt")))
        .limit(quantity)
        .collect(Collectors.toList());
List student=Stream
.生成(()->新学生(
getRandomStringFromFile(“firstnames.txt”),
getRandomStringFromFile(“lastnames.txt”))
.限额(数量)
.collect(Collectors.toList());

你能展示一下你是如何尝试
流式生成的吗
?你确实需要一个供应商……或者考虑使用
IntStream.range
,就像你每次都要循环,
映射
ping到一个新的
学生
对象一样。
List<Student> students = Stream
        .generate(() -> new Student(
                getRandomStringFromFile("firstnames.txt"),
                getRandomStringFromFile("lastnames.txt")))
        .limit(quantity)
        .collect(Collectors.toList());