我需要使用 binaryOperator 实现一个应用方法来执行两个双精度数的数学过程,但不知道如何去做。我的代码的目的是一次对两个数字应用应用方法,每个数字都来自它各自的迭代器。
我编程时间不长,所以我的代码可能有很多错误,但这是我到目前为止的进展:
package interfaces;
import java.util.Arrays;
import java.util.Iterator;
import java.util.function.BinaryOperator;
public class BinaryComputingIterator implements Iterator<Double>,
BinaryOperator<Double>{
private BinaryOperator<Double> operator;
private Iterator<Double> iterator1;
private Iterator<Double> iterator2;
private Double default1;
private Double default2;
BinaryComputingIterator(Iterator<Double> iterator1,
Iterator<Double> iterator2, BinaryOperator<Double> operator){
this.iterator1 = iterator1;
this.iterator2 = iterator2;
this.operator = operator;
}
BinaryComputingIterator(Iterator<Double> iterator1,
Iterator<Double> iterator2, Double default1, Double default2,
BinaryOperator<Double> operator){
this.iterator1 = iterator1;
this.iterator2 = iterator2;
this.operator = operator;
this.default1 = default1;
this.default2 = default2;
}
@Override
public boolean hasNext() {
if (iterator1.hasNext() && iterator2.hasNext()){
return true;
}
return false;
}
@Override
public Double next() {
if (this.hasNext()){
return this.next();
}
return null;
}
@Override
public Double apply(Double t, Double u) {
return this.operator.apply(t, u);
}
}