在地图中存储复杂密钥的最佳方式



在java中,如果Map的键是基元的,那么它们工作得很好,但如果不是基元的话,可能会更复杂。对于Map<String, Payload>,我们正在比较基元类型,因此如果先进行map.put("key1", payload1),然后进行map.get("key1"),则I〃;I’我去拿钥匙。

如果我的密钥类型为Map<MyEnumKey, Payload>,这将不起作用,除非我重写equalshashCode方法。

在我的情况下,我目前拥有的密钥是这样的enum

Map<MyEnumKey, String> map = Map.of(
MyEnumKey.FIRST_KEY, "payload1"
MyEnumKey.SECOND_KEY, "payload2"
);

但我希望映射能够存储1个以上的枚举作为密钥。所以像List<MyEnumKey>这样的东西是有道理的。

Map<..., String> map = Map.of(
(MyEnumKey.FIRST_KEY, MyEnumKey.SOME_KEY), "payload1"
MyEnumKey.SECOND_KEY, "payload2"
);

在这种情况下,在不创建封装List<MyEnumKey>的单独类,然后覆盖equalshashcode的情况下,定义映射的最佳方式是什么?这可以用";"功能性";方式

Map<List<EnumKey>, String> someMap

应该做这个把戏。

相关内容

  • 没有找到相关文章

最新更新