gpt4 book ai didi

java - 流API : create empty map with keys from enum

转载 作者:行者123 更新时间:2023-12-01 21:12:00 25 4
gpt4 key购买 nike

我有以下枚举:

public enum ProductType {
RED_MEAT, POULTRY, FISH, EGGS, NUTS, DAIRY, CERIALS_AND_GRAINS, FRUIT, VEGETABLES, OIL_AND_SUGARS
}

我想使用 enum 中的键创建 map 和空值。我按照this answer尝试过以下代码:

Map<ProductType, DietFrequency> diet = Arrays.stream(ProductType.values())
.collect(Collectors.toMap(productType -> productType, value -> null));

但我得到 NullPointerException这里。我究竟做错了什么?

最佳答案

我很确定 EnumMap更适合您的需求。

Map<ProductType, DietFrequency> diet = new EnumMap<>(ProductType.class);

对于枚举值,EnumMap 比 HashMap 更高效。缺省情况下,不存在任何映射关系。根据您的用例,这可能没问题(map.get(RED_MEAT) 返回 null,这似乎是您想要的),但如果您想执行 containsKey() 检查或循环条目,那么您必须显式地将映射设置为 null:

Arrays.stream(ProductType.values()).forEach(v-> diet.put(v, null));

关于java - 流API : create empty map with keys from enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40974700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com