Как записать в Map максимальное значение для каждого из ключей?
Просто напишите свою реализацию  вставки:public class MyCustomMap extends HashMap<String, Integer> {

	@Override
	public Integer put(String key, Integer value) {
		
		Integer oldValue = get(key);

		if (oldValue == null || oldValue <  value) {
			return super.put(key, value);
		}
		return null;
	}
}


		Map<String, Integer> maps = new MyCustomMap();
		maps.put("A", 5);
		maps.put("B", 2);
		maps.put("A", 8);
		maps.put("B", 7);
		maps.put("A", 3);
		maps.put("B", 3);
		
		System.out.println(maps.get("A"));
		System.out.println(maps.get("B"));
Делаете свой метод put. В нем проверяете, если такого ключа нет - заносите сразу в мапу. Если есть - сравниваете где больше - в мапе или то что заносится. Если то, что заносится - заносите. Если в мапе - ничего не делаете.