让我们假设你需要一个用工厂方法创建的类/记录实例的List 。
下面的片段生成五个UUID,用生成的UUID实例化一个record ,最后将流转换为一个List<Developer>:
import java.util.UUID;
import java.util.stream.Stream;
public class StreamGenerationTest {
@Test
public void listGenerationWithStream() {
record Developer(UUID id) {
}
var developerList = Stream.generate(UUID::randomUUID)
.limit(5)
.map(Developer::new)
.toList();
assertEquals(5, developerList.size());
System.out.println(developerList);
}
}
的输出:[Developer[id=c914402a-93db-4234-a364-131bc5a8ebc2], Developer[id=5b3b16fd-d7cd-4f38-82a7-70923b9e0362], Developer[id=1910d38a-c74c-4535-9466-0e83ff591dbf], Developer[id=db8522c8-b291-439e-9bd7-03d9edc94716], Developer[id=1ec8ed08-dbd4-43f0-93b8-7d60dc1a8132]]
如果你需要一个数字作为索引,请查看:用java.util.stream.IntStream生成方便的列表