Voglio aggiungere valori a HashMap
, che verrebbe utilizzato da metodi della stessa classe. Ho due soluzioni:
- Aggiunta di tutti i valori con
static
- Quando viene chiamato il primo metodo, aggiungi i valori
Soluzione 1:
private static Map<Character, String> codes = new HashMap<>();
static {
codes.put('A', ".-");
codes.put('B', "-...");
codes.put('C', "-.-.");
codes.put('D', "-..");
codes.put('E', ".");
codes.put('F', "..-.");
// ...
}
Soluzione n. 2:
boolean methodIsCalled = false;
public static char decode(String s) {
if(!methodIsCalled) {
addValues();
methodIsCalled = true;
}
// ...
}
private static void addValues() {
codes.put('A', ".-");
codes.put('B', "-...");
codes.put('C', "-.-.");
codes.put('D', "-..");
codes.put('E', ".");
codes.put('F', "..-.");
// ...
}
Qual è il più efficiente? Qual è la migliore pratica?