gpt4 book ai didi

java - 迭代构建流的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 22:56:46 26 4
gpt4 key购买 nike

假设我们有 an algorithm在循环中按顺序生成项目(每次迭代一个项目),我们希望将此算法放入一个返回这些项目流的方法中。

哪种方法最好;这个?

Stream<Cell> streamCellsTouchingRay(Point2D fromPoint, Vector2D direction){
// ...
Stream<Cell> stream = Stream.of(/* 1st item */);
while(/* ... */){
// ...
stream = Stream.concat(stream, /* i'th item */);
}
}

...还是这个?

Stream<Cell> streamCellsTouchingRay(Point2D fromPoint, Vector2D direction){
// ...
ArrayList<Cell> cells = new ArrayList<>(/* required capacity is known */);
cells.add(/* 1st item */);
while(/* ... */){
// ...
cells.add(/* i'th item */);
}
return cells.stream();
}

...或者完全是另一种方法?

最佳答案

完全是另一种方法:使用Stream.Builder .

Stream<Cell> streamCellsTouchingRay(Point2D fromPoint, Vector2D direction){
// ...
Stream.Builder<Cell> cells = Stream.builder();
cells.add(/* 1st item */);
while(/* ... */){
// ...
cells.add(/* i'th item */);
}
return cells.build();
}

关于java - 迭代构建流的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32508887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com