字符串格式我要排序的浮點值,其是在如字符串格式提供的名單列表,排序花車/雙,它們與Comparator.comparing
"rate": "429.0",
"rate": "129.0",
"rate": "1129.0",...
如果我使用Comparator.comparing (Room :: getRate),該列表將按字符串順序排序,這將是不正確的。所以我寫了下面的代碼,我將String轉換爲float,然後進行比較。
下面的代碼適合我,但它看起來很難看,有沒有更好的選擇?
stream().sorted(Comparator.comparing(Room::getRate,
(s1, s2) -> (Float.parseFloat(s1) > Float.parseFloat(s2) ? 1 :-1)))
.collect(Collectors.toList());
你可以寫一個專用的比較器類,並使用它,以便排序。唯一的區別是您將在overriden方法中使用比較器類和排序邏輯。 – Jimmy
是的意識到這一點,但因爲這是一個普遍的問題,希望有人可能有一個更簡單和更好的解決方案。 – Abhi