agrupando objetos java 8

Eu tenho algo como o abaixo:

public class MyClass {
private Long stackId
private Long questionId
}

Uma coleção de digamos 100, onde o stackid pode ser duplicado com diferentes questionIds. É uma relação de um para muitos entre stackId e questionId

Tem algumacórrego, java 8 maneira de converter para a estrutura abaixo:

public class MyOtherClass {
private Long stackId
private Collection<Long> questionIds
}

Qual seria uma coleção de 25, com cada instância tendo uma coleção aninhada de 4 questionIds.

Entrada :

[{1,100},{1,101},{1,102},{1,103},{2,200},{2,201},{2,202},{1,203}]

Resultado

[{1, [100,101,102,103]},{2,[200,201,202,203]}]

questionAnswers(3)

yourAnswerToTheQuestion