java - 如何在foreach java 8中执行算术运算

标签 java foreach java-8

我是 java 8 的新手,我尝试在 java 8 中编写以下代码片段,但确实有效。

static int getMissingNo(int a[], int n) { 
    int i, total; 
    total = (n + 1) * (n + 2) / 2; 
    for (i = 0; i < n; i++) 
        total -= a[i]; 
    return total;
} 

// this is waht i tried in java 8
int  total = (n+1) * (n+2) /2;
unicArray.stream().forEach(e->{
    total  = total - e;
});

代码片段给了我一个编译错误,指出局部变量应该是最终的,但如果它是最终的,我怎样才能返回该值

最佳答案

请找到下面的代码:

static List<Integer> getMissingNo(int[] a, int n) {

        List<Integer> listOfDistinctElements = Arrays.stream(a)
                .boxed()
                .distinct().collect(Collectors.toList());

        List<Integer> elemntsLeftOut = new ArrayList<>();

        IntStream.range(1, listOfDistinctElements.get(listOfDistinctElements.size()-1)).forEach(index ->
                        {
                            if(!listOfDistinctElements.contains(index)){
                                 elemntsLeftOut.add(index);
                        }
                    });

        return elemntsLeftOut;
        }

关于java - 如何在foreach java 8中执行算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58470337/

相关文章:

android - 如何使用谷歌 API 从经纬度列表中获取最近的位置

java - 在 Java 中将 null 分配给 null

java - JPQL 测试值是否在数组中

java - 单个java信号量上的死锁?

java - 同时拥有 Iterator.forEachRemaining() 和 Iterable.forEach() 有什么意义?

java - XSLT xsl :copy and xsl:for-each on attributes

带有正则表达式的 Java 流过滤器不起作用

java - flatMap 保证是惰性的吗?

java - 正则表达式获取两个下划线之间的单词

vba - For Each Next 循环意外地跳过一些条目