На самом деле это вопрос о мелочах, но мне кажется, что здесь что-то не так. Если вы добавляете дубликаты ключей с помощью метода 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;
}
}
}