List<ObjectComposition> objComposition = objectsComposition.stream() .sorted((oc1, oc2) -> { return Integer.parseInt(oc1.getNumberAccordingToPlan().replaceAll("\\D+", "")) - Integer.parseInt(oc2.getNumberAccordingToPlan().replaceAll("\\D+", "")); }) .sorted((oc1, oc2) -> { return Integer.parseInt(oc1.getGroupNumber().replaceAll("\\D+", "")) - Integer.parseInt(oc2.getGroupNumber().replaceAll("\\D+", "")); }) .collect(Collectors.toList()); Well, it should be sorted normally - by number and by group. What would be the group values in ascending order. It turns out:
Don't understand what I'm doing wrong?
numberAccordingToPlanproblem reproduced when sorting only bynumberAccordingToPlan? On two sites? If so, can you prepare a reproducible example ? - default locale