用java.util.stream.Stream生成方便列表的方法

69 阅读1分钟

让我们假设你需要一个用工厂方法创建的类/记录实例的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生成方便的列表