我有这样的 2D ArrayList :ArrayList<ArrayList<SingleCell>> grid;
。
我想像本例中那样使用普通的ArrayList初始化它:
List<Person> persons = Stream.generate(Person::new)
.limit(60)
.collect(Collectors.toList());
在构造holder类时,我得到的是宽度和高度。我想根据传递的大小用new SingleCell();
填充2D ArrayList。
有可能这样做吗?如果有可能我该怎么做?还有什么更好的方法吗?
答案 0 :(得分:1)
在您给出的示例中,Person::new
用于生成列表的元素,但是此生成器可以是您喜欢的任何lambda,所以类似这样的事情:
List<List<SingleCell>> grid =
Stream.generate(()->
Stream.generate(SingleCell::new)
.limit(width)
.collect(Collectors.toList())
)
.limit(height)
.collect(Collectors.toList());