Хотя выводит данные согласно условию:
1 //
q //
2 //
w //
3 //
e // Эта строка последний нормальный ввод пар "Значение - Ключ"
4 //
// Ввод пустой строки
1 q
3 e
2 w
Process finished with exit code 0
package com.javarush.task.task10.task1019;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/*
Функциональности маловато!
*/
public class Solution {
public static void main(String[] args) throws IOException {
HashMap<String, Integer> map = new HashMap<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int id = Integer.parseInt(reader.readLine());
String name = reader.readLine();
while (name.length()!= 0) {
map.put(name, id);
id = Integer.parseInt(reader.readLine());
name = reader.readLine();
}
for(HashMap.Entry<String, Integer> p : map.entrySet()) {
System.out.println(p.getValue() + " " + p.getKey());
}
}
}