java有没有比三个嵌套映射更好的解决方案来保留相同的功能?
情况是这样的
private Map<String, Map<String, Map<String, String>>> properties;
我希望能够访问所有级别——从内部地图获取Map<String, Map<String, String>>
、Map<String, String>
或者仅仅是String
这能以更好的方式避免这种嵌套结构吗?创建一个能够隐藏实现并提供简单方法的包装器是显而易见的解决方案,但它只是隐藏了主要问题
# 1 楼答案
一个干净的解决方案(虽然最初比较麻烦)是normalize您的数据,并将它们加载到内存中
database
。然后,使用JPA,可以利用所有OneToMany
关系,获得共享一个或多个键的对象集合# 2 楼答案
我喜欢
Key
方法然后:
请注意,您只需要一个映射,并且仍然可以获得一个只有
keyA
的对象,因为它将具有不同的键值当然,如果您想存储具有相同索引的多个对象(或者恢复以相同键开头的多个对象,如在搜索
Key("a", "a", "a")
和Key("a", "a", "b)
时恢复Key("a", "a", "")
),它将不起作用。但是,无论如何,您不应该使用Map
,并且可能应该获得一个正确的数据库