我是Java新手。我要求在内存中保存查找表(缩写及其扩展)。我在考虑使用Java哈希地图。但我想知道这是否真的是最好的方法。 此外,如果Google Guava中有任何等效库,则需要相同的库存。 我希望它能够优化并且非常有效率w.r.t时间和记忆
答案 0 :(得分:3)
地图确实很好,如下所示。
显然,现在关注性能或内存消耗还有点早,如果我们在实际用例上没有更多的上下文,我们就无法真正帮助你。
final Map<String, String> lookup = new HashMap<>();
lookup.put("IANAL", "I Ain't A Lawyer");
lookup.put("IMHO", "In My Humble Opinion");
请注意,several implementations有Map interface,或者您可以自己编写。{/ p>
如果你想要一个不可变的地图:
final Map<String, String> lookup = ImmutableMap.<String, String>builder()
.put("IANAL", "I Ain't A Lawyer")
.put("IMHO", "In My Humble Opinion")
.build();
然后用它来查找缩写:
// retrieval:
if (lookup.containsKey("IMHO")) {
final String value = lookup.get("IMHO");
/* do stuff */
}
我说的是替代品......
如果您在编码时知道键/值对将是什么,那么最好使用Java枚举:
class Abbrevations {
IANAL ("I Ain't A Lawyer")
IMHO ("In My Humble Opinion");
private final String value;
private Abbreviations(final String value) {
this.value = value;
}
public String getValue() {
return (value);
}
}
然后,您可以直接查找值,即通过执行以下操作:
Abbreviations.IMHO.getValue()
或者使用:
Abbreviations.valueOf("IMHO).getValue()
考虑到您在学习过程中的位置,我建议您按照链接阅读Java教程并实施示例。