Chcę szybko utworzyć ciąg par wartości klucza mojego HashMap<String, String> m
.Jak przekonwertować mapę HashMap na ciąg znaków K/V w języku Java 8 ze strumieniami
Próbowałem:
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("]");
Z Java8 Próbowałem:
m.entrySet().stream()
.map(entry -> entry.getKey() + " = " + entry.getValue())
.collect(Collectors.joining("; " , "[" , "]"));
Czy istnieje szybszy, lepszy kod, aby to zrobić? Wydaje się, że kosztowne jest dołączanie kluczy i wartości do funkcji mapy, prawda?
Kiedy profilowałeś oba te podejścia, które działały szybciej niż inne? A ile szybciej? –
Nie martwiłbym się o wydajność w tym przypadku ** chyba że ** jest krytyczną częścią systemu i jest wskazane jako wąskie gardło przez użycie profilera lub podobnego narzędzia. Jeśli jeszcze tego nie zrobiłeś i * uważasz, że * ten kod nie jest optymalny, to znaczy, że się mylisz i powinieneś go najpierw przetestować. –
FWIW - Wynik 'm.toString()' może być wystarczająco blisko, aby nie miało to znaczenia. –