在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ Java8 排序問題

Java8 排序問題

如何將類型為String 的對(duì)象屬性 轉(zhuǎn)成 int 排序?
屬性area_size是String類型屬性,但是取值都是數(shù)字類型,我想先通過Id排序,然后再通過area_size的大小排序,以下是我的代碼:

defectFS.stream()
            .sorted(Comparator.comparing(WppDefectF::getId)
                .thenComparing((d1,d2) -> 
                  Integer.compare(Integer.parseInt(d1.getArea_size()), Integer.parseInt(d1.getArea_size()))
                );

我用上面的代碼去實(shí)現(xiàn)的時(shí)候 發(fā)現(xiàn) d1和d2的值總是相等的,所以排出來的順序是無序的,請(qǐng)問在java8 中 如何實(shí)現(xiàn)lambda表達(dá)式的String 屬性排序?

回答
編輯回答
浪蕩不羈

看看這個(gè)文章JDK8的排序大法

2017年4月5日 11:07
編輯回答
負(fù)我心
(d1,d2) -> Integer.compare(Integer.parseInt(d1.getArea_size()), Integer.parseInt(d1.getArea_size()))

這個(gè)地方有問題,兩個(gè)地方寫的都是 d1.getArea_size()。


而且你寫的復(fù)雜了,可以這樣:

Comparator.comparing(WppDefectF::getId).thenComparing(defectF -> Integer.parseInt(defectF.getArea_size()))

即先按 id 排序,再按 area_size 的 int 形式排序。

2017年8月25日 10:54