我如何将此for循环转换为Java 8流模拟

时间:2019-05-27 15:02:40

标签: java java-stream

如何将这段代码转换为Java 8流。

试图用于每个,但失败了。 For循环代码有效。

for(RestrictedInstrument restrictedInstrument : restrictedInstruments){
    List<Identifier> identifierList = restrictedInstrument.getIdentifier();
    setTicker(matrix, identifierList);
}

setTicker()方法应与矩阵Object和identifierList一起调用。

3 个答案:

答案 0 :(得分:2)

您可以只使用List.forEach()

restrictedInstruments.forEach(i -> setTicker(matrix, i.getIdentifier()));

答案 1 :(得分:1)

假定受限仪表为列表,首先映射到identifierList,然后使用Stream.forEach()执行setTicker(...)方法

restrictedInstruments
  .stream()
  .map( RestrictedInstrument::getIdentifier )
  .forEach( identifierList -> setTicker(matrix, identifierList) )

对于数组,只需使用Arrays.stream(limitedInstruments)

答案 2 :(得分:1)

您可以流式处理列表,然后简单地传递仅调用setTicker函数的使用者。

 restrictedInstruments.stream()
.forEach(identifierList -> setTicker(matrix, identifierList.getIdentifier()));