首页 > 解决方案 > 我应该在这里使用平面地图还是键值列表地图

问题描述

我有一张价值观地图。这些值仅限于 3 种可能性(“A”、“B”、“C”)。这张地图我将有大约 100 个条目。

Map<String, String> map = new HashMap<>();
map.put("key1","A");
map.put("key2","B");
map.put("key3","C");
map.put("key4","A");
map.put("key5","B");
.
.
.

此映射的唯一目的是一个函数,我将密钥作为输入,如果密钥没有值,我需要返回三个“A”、“B”、“C”之一或 null。我的查找将仅基于此处的键。

我无法决定是否应该重复这些值并构建一个平面地图,或者使用Map<String, List<String>>键是三个值的地方。如在

Map<String, List<String>> map = new HashMap<>();
map.put("A",Arrays.asList("key1","key2"));
map.put("B",Arrays.asList("key3","key4"));
map.put("C",Arrays.asList("key5","key6"));

或者,我是否使用 3 个单独的List<String>变量并每次检查使用 contains。如在

List<String> A_LIST = Arrays.asList("key1","key2");
List<String> B_LIST = Arrays.asList("key3","key4");
List<String> C_LIST = Arrays.asList("key5","key6");

另外,我是否对此处的值使用枚举/静态字符串并在构建地图时重复它们?这样做的正确方法是什么?任何建议都会很有用。

标签: javahashmap

解决方案


我不确定我是否理解你的问题。但我认为get(key)你的地图方法应该足够了。如果地图中没有条目,它将返回null

我只会改变这个值,所以它是一个枚举,你可以确定除了 A、B 和 C 之外没有其他值。


推荐阅读