2017-10-12 137 views
0

這樣:如何順序元素添加到與流的列表

List<Integer> list = new LinkedList<>(); 

    for (int i = 0; i < upperBound; i += step) { 
     list.add(i); 
    } 

我怎麼能取代它的功能與風格的流?

謝謝

+0

爲什麼你想這樣做的更多信息?背後有邏輯嗎? – Nathan

回答

2

你的循環看起來不錯。

如果您絕對想使用流,您可以創建一個IntStream並將其放入List。例如:

int elementCount = upperBound/step; 
if (upperBound % step != 0) elementCount++; 

List<Integer> list = IntStream.range(0, elementCount) 
     .map(i -> i * step) 
     .boxed() 
     .collect(toCollection(LinkedList::new)); 

請注意,定義上限並非易事。

1

您可以使用IntStreamrange功能:

List<Integer> collect = IntStream.range(startRange, upperBound).filter(x -> (x % step) == 0).boxed().collect(toCollection(LinkedList::new)); 

你可以找到在這個answer