Все выводит, а не должен. public static Map<String, Integer> createMap(){ Map<String, Integer> map = new HashMap<>(); map.put("Орлов", 1500); map.put("Сулейманов", 400); map.put("Иванов", 1800); map.put("Инченко", 300); map.put("Курилов", 3300); map.put("Кузнецов", 150); map.put("Евгеньев", 500); map.put("Краснов", 1700); map.put("Игорьев", 100); map.put("Самсонов", 4500); return map; } public static void removeItemFromMap(Map<String, Integer> map){ Iterator <Map.Entry<String, Integer>> mapIterator = map.entrySet().iterator(); while (mapIterator.hasNext()){ Map.Entry<String, Integer> pair = mapIterator.next(); if(pair.getValue() < 500){mapIterator.remove();} String key = pair.getKey(); int values = pair.getValue(); System.out.println(key + " = " + values); } } public static void main(String[] args) { removeItemFromMap(createMap()); } }