Исходный файл CSV

Финал результат

Кроме того, одна и та же пара не может появляться в конечном результате в обратном порядке, как показано в таблице ниже:
Этого не должно происходить

Есть ли способ сделать это, используя поток и группировку одновременно, поскольку теоретически два циклы потребуются для выполнения задачи?
Подробнее здесь: https://stackoverflow.com/questions/686 ... stream-api
Мобильная версия