如何用流初始化 2d ArrayList
How to initialise 2d ArrayList with streams
我有像这样的 2D ArrayList:ArrayList<ArrayList<SingleCell>> grid;
。
我想像本例中那样用普通的 ArrayList:
初始化它
List<Person> persons = Stream.generate(Person::new)
.limit(60)
.collect(Collectors.toList());
我在构造 holder 时获取宽度和高度 class。我想根据传递的大小用 new SingleCell();
填充 2D ArrayList。
是否可以这样做,如果可能的话我该怎么做?还有什么更好的方法吗?
在您给出的示例中,Person::new
用于生成列表的元素,但此生成器可以是您喜欢的任何 lambda,那么像这样的东西怎么样:
List<List<SingleCell>> grid =
Stream.generate(()->
Stream.generate(SingleCell::new)
.limit(width)
.collect(Collectors.toList())
)
.limit(height)
.collect(Collectors.toList());
我有像这样的 2D ArrayList:ArrayList<ArrayList<SingleCell>> grid;
。
我想像本例中那样用普通的 ArrayList:
List<Person> persons = Stream.generate(Person::new)
.limit(60)
.collect(Collectors.toList());
我在构造 holder 时获取宽度和高度 class。我想根据传递的大小用 new SingleCell();
填充 2D ArrayList。
是否可以这样做,如果可能的话我该怎么做?还有什么更好的方法吗?
在您给出的示例中,Person::new
用于生成列表的元素,但此生成器可以是您喜欢的任何 lambda,那么像这样的东西怎么样:
List<List<SingleCell>> grid =
Stream.generate(()->
Stream.generate(SingleCell::new)
.limit(width)
.collect(Collectors.toList())
)
.limit(height)
.collect(Collectors.toList());