【发布时间】:2019-08-16 01:33:00
【问题描述】:
问题
如果推荐的话,我想要一个键值对列表,例如 HashMap 或其他。
此列表应包含用于检索值的唯一键对象。
键不应该是字符串,因为字符串不是唯一的,可以传递任何值。
此外,常量是有限的,并且也在使用字符串的概念,因此不应考虑。
示例
想要的是例如 list[Color.Red] = "Red"。
在这个阶段,我创建了一个包含所有键的枚举。 例如 enum Color{RED,BLUE} 然后将其添加到新的 HashMap 中。
因此,获取颜色的唯一方法是将枚举用作键列表[Color.RED]。
实施
public final static Map<Color, String> colors = new HashMap<>();
public final static enum Color{RED, BLUE;}
static
{
colors.put(RED, "red");
colors.put(BLUE, "blue");
}
public static string getColor(Color color)
{
return colors.get(color);
}
需要帮助
Java 中是否有一种 Collection 可以完成这项工作? 如果没有,那么最好的做法是什么?
【问题讨论】:
-
您的示例是否真实,因为您希望
Color.RED返回“Red”的值?因为您可以覆盖.toString()或向enum添加方法以返回特定值,而枚举是一个数组,并且是唯一的。但是使用枚举作为键是限制输入的一种完全合法的方式。 -
可以使用枚举的构造函数来添加值,所以映射是必不可少的。
-
是的,你是对的,这就是这样做的方法,我在这个线程的末尾添加了一个潜在的解决方案。干杯!
标签: java list collections hashmap