📅  最后修改于: 2023-12-03 15:31:28.160000             🧑  作者: Mango
在Java 8中,提供了一个新的函数式接口——ObjDoubleConsumer。该接口表示接受一个对象和一个double类型的参数,没有返回值。
ObjDoubleConsumer接口的定义如下:
@FunctionalInterface
public interface ObjDoubleConsumer<T> {
void accept(T t, double value);
}
下面是一个使用ObjDoubleConsumer的示例:
import java.util.HashMap;
import java.util.Map;
import java.util.function.ObjDoubleConsumer;
public class ObjDoubleConsumerExample {
public static void main(String[] args) {
Map<String, Double> map = new HashMap<>();
map.put("Apple", 1.5);
map.put("Banana", 2.0);
map.put("Orange", 3.0);
ObjDoubleConsumer<String> objDoubleConsumer = (key, value) -> map.put(key, value * 2);
objDoubleConsumer.accept("Apple", 2.0);
objDoubleConsumer.accept("Banana", 2.5);
map.forEach((k, v) -> System.out.println(k + " : " + v));
}
}
输出结果为:
Apple : 3.0
Banana : 5.0
Orange : 3.0
在该示例中,我们使用了ObjDoubleConsumer来修改Map中键对应的值。具体来说,我们将该接口实例化,并使用accept()方法来传递键和一个新的值,从而修改Map中该键对应的值。最后,我们使用forEach()方法来遍历Map并输出每个键和其对应的值。