我想List<String>
用 72-129 和 132-200 的数值创建一个。我考虑过使用一个IntStream
并将值映射到字符串并收集到一个列表。我使用了这段代码:
List<String> strings72to200 = Stream .concat(Stream.of(IntStream.range(72, 129)), Stream.of(IntStream.range(132, 200))) .map(e -> String.valueOf(e)).collect(Collectors.toList());
但是,如果我调试 的实际值strings72to200
,我会得到:
[java.util.stream.IntPipeline$Head@56d13c31, java.util.stream.IntPipeline$Head@5f9127c5]
我相信Stream.concat()
以及.map()
导致这种情况,因为我确实有这样的工作代码:
List<String> strings50to59 = IntStream.range(50, 60).mapToObj(e -> String.valueOf(e)) .collect(Collectors.toList());
请注意,这件作品使用.mapToObj()
而不是.map()
.
所以问题是,我怎样才能通过流创建一个包含这些值的列表(注意初始拆分)(因为这似乎比循环更平滑)?我是否应该创建完整列表并在之后删除不需要的项目(在更大的差距上不可行)?
UYOU
蝴蝶刀刀
SMILET
相关分类