Java8 scheduling problem

how do I convert object properties of type String to int sorting?
attribute area_size is a String type attribute, but the values are all numeric types. I want to sort it first by Id, and then by the size of area_size. Here"s my code:

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

when I use the above code to implement it, I find that the values of D1 and D2 are always the same, so the order is out of order. How to sort the String attributes of lambda expressions in java8?

Mar.21,2021

(d1,d2) -> Integer.compare(Integer.parseInt(d1.getArea_size()), Integer.parseInt(d1.getArea_size()))

there is a problem in this place. It says d1.getArea_size () in both places.

< hr >

and your writing is complicated, you can go like this:

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

that is, first sort by id, and then sort by int form of area_size.


take a look at this article the sorting method of JDK8

Menu