【问题标题】:how to make flowchart for lambda or java8?如何为 lambda 或 java8 制作流程图?
【发布时间】:2018-10-02 03:59:36
【问题描述】:

你能帮我教我如何用这段代码制作流程图吗? 谢谢你

public BigDecimal[][] calcMatrixHessian(BigDecimal[][] polynomialMatrix, int[] classification, double λ) {
  return IntStream.range(0, polynomialMatrix.length)
      .mapToObj(i -> IntStream.range(0, polynomialMatrix[i].length)
          .mapToObj(j -> polynomialMatrix[i][j]
              .multiply(BigDecimal.valueOf(classification[i]*classification[j]))
              .add(BigDecimal.valueOf(Math.pow(λ,2))))
          .toArray(BigDecimal[]::new))
      .toArray(BigDecimal[][]::new);

【问题讨论】:

    标签: lambda java-8 flowchart


    【解决方案1】:

    流程图对于绘制程序/命令式范例很有用。 Java Streams 非常实用,因此绘制它的流程图没有用处,因为您只会得到:

    start -> return IntStream.range(0, polynomialMatrix.length)
      .mapToObj(i -> IntStream.range(0, polynomialMatrix[i].length)
          .mapToObj(j -> polynomialMatrix[i][j]
              .multiply(BigDecimal.valueOf(classification[i]*classification[j]))
              .add(BigDecimal.valueOf(Math.pow(λ,2))))
          .toArray(BigDecimal[]::new))
      .toArray(BigDecimal[][]::new); -> end
    

    所以我们必须将其转换为更程序化的算法。这是一些伪代码:

    retVal = new BigDecimal[polynomialMatrix[0].length][polynomialMatrix.length]
    for i = 0 to polynomialMatrix.length
        for j = 0 to polynomialMatrix[i].length
           retVal[i][j] = polynomialMatrix[i][j] * classification[i]*classification[j]
           retVal[i][j] += Math.pow(λ,2)
    return retVal
    

    现在应该更容易将其转换为流程图。自己试试吧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      相关资源
      最近更新 更多