Voglio creare una stringa delle coppie di valori chiave della mia HashMap<String, String> m
il più velocemente possibile.Come convertire un HashMap ad un K/V-String in Java 8 con Streams
ho provato:
StringBuffer buf = new StringBuffer();
buf.append("[");
for (String key : m.keySet()) {
buf.append(key);
buf.append("=");
buf.append(m.get(key));
buf.append(";");
}
buf.append("]");
Con Java8 ho provato:
m.entrySet().stream()
.map(entry -> entry.getKey() + " = " + entry.getValue())
.collect(Collectors.joining("; " , "[" , "]"));
Esiste un codice più veloce di meglio da fare che? Sembra essere costoso aggiungere le chiavi e i valori nella funzione mappa, vero?
Quando si profilata entrambi questi approcci, che correva più veloce rispetto agli altri? E quanto più veloce? –
In questo caso non mi preoccuperei delle prestazioni ** a meno che ** non sia una parte critica del sistema e viene indicato come collo di bottiglia dall'utilizzo di un profiler o di uno strumento simile. Se non lo hai fatto prima e pensi * questo codice non è ottimale, allora I̶ ̶k̶n̶o̶w̶ ̶t̶h̶a̶t̶ forse hai torto e dovresti testarlo prima. –
FWIW - Il risultato di 'm.toString()' potrebbe essere abbastanza vicino per te non importa. –