На самом деле это вопрос о мелочах, но мне кажется, что здесь что-то не так. Если вы добавляете дубликаты ключей с помощью метода Collectors.toMap, он выдает исключение с сообщением "дублирующий ключ". Почему значение указано, а не ключ? Или даже оба? Это действительно вводит в заблуждение, не так ли?
Здесь немного теста, чтобы продемонстрировать поведение:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class TestToMap {
    public static void main(String[] args) {
        List<Something> list = Arrays.asList(
            new Something("key1", "value1"),
            new Something("key2", "value2"),
            new Something("key3", "value3a"),
            new Something("key3", "value3b"));
        Map<String, String> map = list.stream().collect(Collectors.toMap(o -> o.key, o -> o.value));
        System.out.println(map);
    }
    private static class Something {
        final String key, value;
        Something(final String key, final String value){
            this.key = key;
            this.value = value;
        }
    }
}