Mon*_*ded 14 java performance hashmap
一些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);
}
}
Run Code Online (Sandbox Code Playgroud)
支持硬编码:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当你把所有内容都放在混合中时(Memory,Performance,GC,......)
有没有理由坚持使用HashMap?
MAP
在静态块中初始化.
因为你将创建Message的许多对象.你应该编写这样的代码
public class Message {
private static HashMap tagMap;
static {
tagMap = new HashMap();
tagMap.put( 1, "tag1Name");
tagMap.put( 2, "tag2Name");
tagMap.put( 3, "tag3Name");
}
public Message() {
}
public String getTagName( int tagNumber) {
return tagMap.get( tagNumber);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8460 次 |
最近记录: |