Niektóre klasy wiadomości jest w stanie powrócić nazwę znacznika na podstawie numeru znacznika
Ponieważ ta klasa jest instanciated wiele razy, jestem trochę niechętnie, aby utworzyć HashMap dla każdej instancji:Java ustalony przełącznik vs 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);
}
}
na rzecz hardcoding:
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;
}
}
}
Kiedy można umieścić wszystko w miksie (Pamięć, Performance, GC, ...)
Czy istnieje powód, aby trzymać się HashMap?
Czy nie byłaby to sytuacja, w której "enum" byłby idealny? – Edd
Jeśli lista jest taka sama dla wszystkich wiadomości, można również uczynić mapę statyczną. – assylias
Czy ty (poprzez profilowanie) ustaliłeś, że instancja klasy jest naprawdę problemem? – joergl