languages.stream() .sorted((s1, s2) -> Double.compare(s2.getRanking(), s1.getRanking())); Что значит (s1, s2)? И как к ним присваеваются значения? По какому принципу мы сортирует сравненые значения?