小编bow*_*ore的帖子

如何在Stream上短路reduce()操作?

这与如何在Stream上短路减少基本相同.但是,由于这个问题集中在一个布尔值流,并且其答案不能推广到其他类型并减少操作,我想问更一般的问题.

我们如何在流上进行减少,以便在遇到减少操作的吸收元件时发生短路?

乘法的典型数学例子是0.这个Stream:

int product = IntStream.of(2, 3, 4, 5, 0, 7, 8)
        .reduce(1, (a, b) -> a * b);
Run Code Online (Sandbox Code Playgroud)

将消耗最后两个元素(78),无论一旦0遇到产品已知的事实.

java java-8 java-stream

29
推荐指数
2
解决办法
2054
查看次数

java中错过了什么信号?如何通过等待线程调用notify()?

我正在阅读Jakob Jenkov的一个并发教程.在此他提到有时通过等待线程可以错过notify()信号.这怎么可能?

public class MissedSignal {

    //boolean wasSignalled = false;
    public void doWait() {
        synchronized (this) {
            //if(!wasSignalled){

            try {
                this.wait();
            } catch (InterruptedException e) {
            }
            //}
        }
    }

    public void doNotify() {
        synchronized (this) {
            //wasSignalled = true;

            this.notify();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我无法理解此代码的注释部分的使用.我认为等待线程永远不会错过notify()信号?有人可以解释一下......我是java的新手,我没有在谷歌上找到这个答案....在此先感谢

java multithreading

2
推荐指数
1
解决办法
1037
查看次数

如何打印出每三个数字(偶数和奇数)?

我要打印输出前三个偶数,前三个奇数后,后三个偶数后二个三个奇数

{ Like 
Even Number 
0 
2 
4  
Odd Number 
1 
3 
5
Even Number 
6 
8 
10
Odd Number 
7 
9 
11 }
Run Code Online (Sandbox Code Playgroud)

码:

public class OddAndEven {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int i;
    for(i=0;i<=50;i++){
        if(i%2==1){
            System.out.print("Odd Number "+i);
        }
        if(i%2==0){
            System.out.print("     ");
            System.out.println("Even Number "+i);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

}

java

0
推荐指数
1
解决办法
802
查看次数

标签 统计

java ×3

java-8 ×1

java-stream ×1

multithreading ×1