我的同事告诉我,使用地图很懒,而且程序员的目的通常会被实际对象更好地服务。但我不知道最好的方法。由于密钥是Enum类型,这对我来说更复杂。
假设我有一个Hashmap<MyEnum, MyObj>
,预计会有四个hashmap键(MyEnum
中的每个值都有一个)。 MyObj
hashmap值是数据库中具有给定枚举值的几个MyObj中的最新值。
我最好的猜测涉及一个有四个字段的对象,或者两个数组按顺序包含键和值。
不确定这是否清楚(星期四下午5点=我已经死了),所以如有必要,请要求澄清。
答案 0 :(得分:3)
虽然将地图用于其预期目的并没有错,但地图有时会被误用作强类型对象的替代品。
String firstname = (String)myMap.get("first_name");
......而不是:
String firstName = person.getFirstName();
由于Java将枚举实现为类,因此您可能需要考虑将您正在寻找的值直接放入枚举类中:
MyEnum val = getVal();
MyObj obj = val.getMostRecentMyObj();
但是我要注意分离关注点,以确定这是否真的有意义。地图很适合这项工作。