java - 我应该在这里使用平面地图还是键值列表地图
问题描述
我有一张价值观地图。这些值仅限于 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");
另外,我是否对此处的值使用枚举/静态字符串并在构建地图时重复它们?这样做的正确方法是什么?任何建议都会很有用。
解决方案
我不确定我是否理解你的问题。但我认为get(key)
你的地图方法应该足够了。如果地图中没有条目,它将返回null
。
我只会改变这个值,所以它是一个枚举,你可以确定除了 A、B 和 C 之外没有其他值。
推荐阅读
- android - 带有Android应用程序的离子项目中的多个环境
- qt - 我如何重定向到另一个页面,或者我可以链接我的 qml 文件。qt创建者
- c++ - 数据成员指针被共享 C++
- r - 如何将包含 Unicode 快捷方式的字符串转换为 R 中的 TRUE Unicode 字符?
- graphql - 使用 TypORM 返回一个类型数组
- php - 如何从包含的模块配置中运行特定套件的测试?
- r - 间隔外日期的分组选择性总和
- java - Youtube 数据 API-HTTP/1.1 401 未经授权
- javascript - ReactJS 中的按钮显示不正确
- c++ - size_t 和 unsigned long long 有什么区别吗?