Java 硬编码开关与哈希映射
2022-09-04 04:19:46
某些 Message 类能够根据标记号
返回标记名称 由于该类被实例化了很多次,我有点不愿意为每个实例创建一个 HashMap:
public class Message {
private HashMap<Integer,String> tagMap;
public Message() {
this.tagMap = new HashMap<Integer,String>();
this.tagMap.put( 1, "tag1Name");
this.tagMap.put( 2, "tag2Name");
this.tagMap.put( 3, "tag3Name");
}
public String getTagName( int tagNumber) {
return this.tagMap.get( tagNumber);
}
}
支持硬编码:
public class Message {
public Message() {
}
public String getTagName( int tagNumber) {
switch( tagNumber) {
case 1: return "tag1Name";
case 2: return "tag2Name";
case 3: return "tag3Name";
default return null;
}
}
}
当您将所有内容都混合在一起时(内存,性能,GC等)
有什么理由坚持使用HashMap吗?