qum*_*uma 0 java java-8 java-stream
我有一个关于Java 8和列表的问题.是否可以比下面的代码更容易初始化List?
final List<List<ScheduleIntervalContainer>> weekScheduler = new ArrayList<>();
weekScheduler.add(0, new ArrayList<ScheduleIntervalContainer>());
weekScheduler.add(1, new ArrayList<ScheduleIntervalContainer>());
weekScheduler.add(2, new ArrayList<ScheduleIntervalContainer>());
weekScheduler.add(3, new ArrayList<ScheduleIntervalContainer>());
weekScheduler.add(4, new ArrayList<ScheduleIntervalContainer>());
weekScheduler.add(5, new ArrayList<ScheduleIntervalContainer>());
weekScheduler.add(6, new ArrayList<ScheduleIntervalContainer>());
Run Code Online (Sandbox Code Playgroud)
Pau*_*ton 10
就个人而言,我只会使用一个for循环:
List<List<ScheduleIntervalContainer>> weekScheduler = new ArrayList<>();
for (int i = 0; i < 7; i++)
weekScheduler.add(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要Java 8解决方案:
List<List<ScheduleIntervalContainer>> weekScheduler
= Stream.generate(ArrayList<ScheduleIntervalContainer>::new)
.limit(7)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
您可以使用:
List<List<ScheduleIntervalContainer>> weekScheduler =
IntStream.rangeClosed(0, 6).mapToObj(i -> new ArrayList<ScheduleIntervalContainer>())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
这将创建一个int从0到6(包括)的值流,将每个int映射到ArrayList您的新类,并将结果收集到a List.
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |