Идея ругается что примитивы не могут быть приравняны к String или null.
Заменил int на Integer и пробовал через == null или .equals(" ") то же самое, подсказывает что результат всегда false.
Попробовал завернуть считывание строки в try catch и при исключении делать break, тогда переменная i становится недостижима для метода map.put()
Подскажите в какую сторону думать то
package com.javarush.task.task10.task1019;
import java.io.*;
import java.util.HashMap;
/*
Функциональности маловато!
Требования:
1. Программа должна считывать данные с клавиатуры.
2. Программа должна выводить текст на экран.
3. В методе main объяви переменную коллекции HashMap и сразу проинициализируй ee.
4. Программа должна помещать в HashMap пары считанные с клавиатуры.
5. Программа должна выводить на экран содержимое HashMap согласно условию.
Ключ и значение разделены пробелом. Каждое значение с новой строки.
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
HashMap<Integer, String> map = new HashMap<>();
while (true){
int id = Integer.parseInt(reader.readLine());
String name = reader.readLine();
for (HashMap.Entry<Integer, String> pair : map.entrySet()) {
if(name.equals(pair.getValue())) {
name = reader.readLine();
}
}
if (name.equals("")) {
break;
}
map.put(id, name);
}
for (HashMap.Entry<Integer, String> pair: map.entrySet()) {
System.out.println(pair.getKey() + " " + pair.getValue());
}
}
}