<分区>
自 Java 8 以来,与检查 Map 是否包含元素相关的最佳实践是什么?我想检查 Map 是否包含一个元素并基于它获取对象或创建一个新对象并将其放入 map 中。功能方式似乎过于冗长。
final private static Map<Integer, BowlingBall> pool = new HashMap<>();
int number = 8;
命令式:
BowlingBall ballImperative = null;
if (pool.containsKey(number)) {
ballImperative = pool.get(number);
} else {
ballImperative = new BowlingBall(number);
pool.put(number, ballImperative);
}
功能方式:
BowlingBall ballFunctional = pool.values().stream()
.filter(k -> k.getNumber() == number)
.findAny()
.orElseGet(() -> new BowlingBall(number));
pool.put(number, ballFunctional);