Ответ 1
Я думаю, что вы ищете что-то вроде этого:
import java.util.*;
import java.util.stream.*;
public class Test {
public static void main(String[] args) throws Exception {
Map<Integer, String> map = new HashMap<>();
map.put(1, "foo");
map.put(2, "bar");
map.put(3, "baz");
String result = map.entrySet()
.stream()
.map(entry -> entry.getKey() + " - " + entry.getValue())
.collect(Collectors.joining(", "));
System.out.println(result);
}
}
Чтобы пройти через бит в свою очередь:
-
entrySet()
получает итеративную последовательность записей -
stream()
создает поток для этого итеративного -
map()
преобразует этот поток записей в поток строк формы "ключ-значение" -
collect(Collectors.joining(", "))
объединяет все записи в потоке в одну строку, используя", "
в качестве разделителя.Collectors.joining
- это метод, который возвращаетCollector
, который может работать во входной последовательности строк, давая результат одной строки.
Обратите внимание, что порядок здесь не гарантируется, потому что HashMap
не упорядочен. Вы можете использовать TreeMap
для получения значений в порядке нажатия клавиш.