Collections.sort(numbers, (a, b) -> {
return a - b;
});

これが昇順にソートされるのは何でですか?
sortの2つ目の引数にcompareを実装するラムダ式を入れて、aとbの比較をして、
結果の大小で戻り値が3種類に分かれるのはわかるんですが、その結果をどう使っているのかと、
numbersが1,2,3,4,5のときと、3,1,2,4,5のときでa,bに代入される順番やループ回数が違うのがわかりません。