Разделить на пробел.Затем вы разделили ключи и значения.Затем разделить на разделитель /
.После этого настройте карту и соберите:
String input = ...
String[] data = input.split(" ");
String[] keys = data[0].split("/");
String[] values = data[1].split("/");
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], Integer.valueOf(values[i]));
}
Использование Stream API здесь, вероятно, будет довольно сложным и нечитаемым.Проблема в том, что значения следуют после ключей, и не так просто чередовать подпотоки.Таким образом, вам будет нелегко объединить ключи с соответствующими им значениями.
Ваш нынешний подход имеет именно эту проблему:
Arrays.stream(input.split(" ")) // Stream<String>
.map(data -> data.split("/")) // Stream<String[]> : [keys, values]
... // How to group keys[i] with values[i]?
Я уверен, что вы можете заставить это работать как-то.Но это не будет простым и, вероятно, запутать читателей.Я бы просто придерживался обычных петель.Stream API не помогает в каждой ситуации.