首页 > 解决方案 > 使用 Java 函数式编程简化 if-else 条件

问题描述

有什么建议可以使用 Java 8 功能简化以下代码块?

int[] ans = new int[2];
list.forEach(i -> {
    if (i > 0) {
        ans[0] += 1;
    } else if (i < 0) {
        ans[1] += 1;
    }
});

PS不知道我是否应该在这里发布

标签: javaoptimizationjava-8

解决方案


如果您不想计算零,那么您的代码将尽可能简单。但是,如果您想将零计为正数,则可以将其缩短为此。

int[] ans = new int[2];
for (int i : list) ans[i < 0 ? 1 : 0] += 1;

推荐阅读