Как добавить в мапу с помощью стрима не теряя порядка вхождения?

Мой код

Stream<String> stream = Stream.of(textfile.toLowerCase().split("\\W+")).parallel();
Map<String, Integer> counter = stream.collect(Collectors.toMap(s -> s, s -> 1, Integer::sum));

Стрим ложит в мапу ключ стринг со интовым значение, который считает количество этой стринги в тексте

Проблема в том, что теряется последовательность вхождений

Например, входящая строка:

today is nice day today is

правильный вывод

{today=2, is=2, nice=1, day=1}

мой вывод

{today=2, is=2, day=1, nice=1}

Ответы (1 шт):

Автор решения: IR42

Используйте LinkedHashMap

Collectors.toMap(s -> s, s -> 1, Integer::sum, LinkedHashMap::new)
→ Ссылка